项目使用django+mysql

在linux中使用的是mysql5.7,导入数据提示:Field * doesn't have a default value

想要解决问题就需要知道在mysql5.7中,启用了严格模式:

在配置文件中 /etc/mysql/my.cnf 中找到:

sql-model=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

修改为:sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

然后重启mysql,在重新同步模型到数据库

出现此问题的原因:

在mysql5.0.2以前,mysql对非法值检查并不严厉,而且为了数据输入还会强制将他们变为合法值。

在5.0.2以后的版本中,保留了以前的默认行为,但你可以为不良值选择更传统的处理方法,从而使得服务器能够拒绝并放弃出现不良值的语句。

mysql 默认行为和新的严格sql模式和区别:

如果未使用严格模式,下面的情况是合法的。如果将不正确的值插入到列,如将null值插入非null列,或将过大的数据插入数值列,mysql 会将这些列设置为最可能的值,而不是抛出错误信息。

如果视图将超过范围的值保存到数值列,mysql服务器将保存0(最小的可能值)取而代之,或最大的可能值。

对于字符串,mysql 或保存空字符串,或将字符串可能多的部分保存到列中。

如果打算将不是以数值开头的字符串保存到数值列,mysql将保存0。

mysql允许将特定的不正确日期值保存到DATE和DATETIME列(如:“2000-02-31” 或 “2000-02-00”)。其观点在于,验证日期不是sql服务器你的值。如果mysql能保存日期值并且准确检索相同的值,mysql就能按给定的值保存它。如果日期错误(超出服务器能保存的范围)将在列中保存特殊的日期值“0000-00-00”取而代之。

如果视图将null值保存到不接受null值的列,对于单行insert语句,将出现错误。对于多行insert语句或者insert into...select语句,mysql服务器会保存针对列数据类型的隐含默认值。一般情况下,对于数值类型,它是0,对于字符串类型,它是空字符串(‘’),对于日期和时间类型是“zero”。

如果insert语句未为列指定值,如果列定义包含明确的default子句,mysql将插入默认值。如果在定义中没有这类default子句,mysql 会插入列数据类型的隐含默认值。

采用前描述规则的原因在于,在语句开始执行前,无法检查这些情况。如果在更新了舒航后遇到这类问题,我们不能仅靠回滚解决,这是因为存储引擎可能不支持回滚。种植语句并不是良好的选择,在该情况下,更新完成了“一半”,这或许是最差的情况。对于本例,较好的方式是“尽可能做到最好”,就像什么都没有发生那样继续执行。

在mysql 5.0.2以后的版本中,可以使用STRICT_TRANS_TABLES 或 STRICT_ALL_TABLES sql模式,选择更严格的处理方式。

STRICT_TRANS_TABLES的工作方式:

对于事物性存储引擎,在语句中任何地方出现的不良数据值俊辉导致放弃语句并执行回滚。

对于非事物性存储引擎,如果错误出现再要插入或更新的第一行,将放弃语句。(这种情况下,可以认为语句未改变表,就像事物表一样)。首行后出现的错误不会导致放弃执行语句。取而代之的是,将调整不良数据值,并给出警告,而不是错误。换句话讲,使用STRICT_TRANS_TABLES后,错误值会导致mysql执行回滚操作,如果可以,所有更新到此为止。

要想执行更严格的检查,请启用STRICT_ALL_TABLES。除了非事务性存储引擎,它与STRICT_TRANS_TABLES等同,即使当不良数据出现在首行后的其他行,所产生的错误也会导致放弃执行语句。这意味着,如果错误出现在非事务性表多行插入或更新过程之中,仅更新部分结果,前面的行将完成插入或更新,但错误出现点后面行为则不然。对于非事务性表,为了避免这种情况的发生,可使用单行语句,或者在能接受转换警告而不是错误的情况下使用STRICT_TRANS_TABLES。要想在第1场合防止问题的出现,不要使用mysql来检查列的内容。最安全的方式是,让应用程序负责,仅将有效值传递给数据库。

有了严格的模式选项后,可使用insert ignore 或 update ignore 而不是不带ignore的insert或update,将错误当做警告对待。

mysql 查数据 default无效_导入mysql数据的时候提示Field * doesn't have a default value解决方法...相关推荐

  1. mysql配置服务器失败怎么办_安装用友MSDE2000数据库提示:安装程序配置服务器失败怎么解决?...

    很多XP系统的同学,在安装msde2000数据库的时候提示一个错误:安装程序配置服务器失败的问题呢?今天在安装用友MSDE2000数据库提示:安装程序配置服务器失败.如下图所示: 点击确定后,用友MS ...

  2. excel导入mysql后会多了0_Excel导入MySQL数据出现

    点击import:则数据导入表格成功,结果如下所示 导入的MySQL数据错列问题: 当导入fct_sales_item的时候发现,数据存在一个错列有问题.也就是对比MySQL数据库原表的列的顺序,会发 ...

  3. mysql数据库存储数据的过程_[数据库]MySql存储过程总结

    [数据库]MySql存储过程总结 0 2014-06-12 01:00:50 之前总是在MSSQL上写存储过程,没有在MYSQL上写过,也基本没有用过,今天需要用到MYSQL,研究了下,把项目的需要的 ...

  4. 怎么评价两组数据是否接近_接近组数据(组间)

    怎么评价两组数据是否接近 接近组数据(组间) (Approaching group data (between-group)) A typical situation regarding solvin ...

  5. nacos 未读取到合法数据,请检查导入的数据文件

    现象 nacos导入配置文件莫名其妙就报"未读取到合法数据,请检查导入的数据文件" 配置文件格式路径都是对的,是从nacos上直接导出来的, XXX.zip/group_Id/*. ...

  6. mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法

    mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法 参考文章: (1)mysql 直接从date 文件夹备份表,还原数据库之后提示 t ...

  7. 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法

    大数据学习系列之八----- Hadoop.Spark.HBase.Hive搭建环境遇到的错误以及解决方法 参考文章: (1)大数据学习系列之八----- Hadoop.Spark.HBase.Hiv ...

  8. eclipse的plugins导入hadoop-eclipse-plugin-2.6.0.jar后Preference下没有hadoop Map/Reduce的解决方法

    参考文章:eclipse下的plugins导入hadoop-eclipse-plugin-2.7.1.jar,Preference下没有hadoop Map/Reduce的解决方法 这种现象一般是由于 ...

  9. mysql doesnt have a default value_导入mysql数据的时候提示Field * doesn't have a default value解决方法...

    项目使用django+mysql 在linux中使用的是mysql5.7,导入数据提示:Field * doesn't have a default value 想要解决问题就需要知道在mysql5. ...

最新文章

  1. TensorRT 基于Yolov3的开发
  2. 那些年让你迷惑的阻塞、非阻塞、异步、同步
  3. ResNet在计算机视觉中的应用
  4. 解决maven3.6版本不兼容idea2017问题
  5. Python if条件判断
  6. Python可视化中的Matplotlib(5.直方图、条形图以及饼图的用法和详细的参数)
  7. Codeforces Gym 100269G Garage 数学
  8. Oracle 11gR2 RAC Service-Side TAF 配置示例
  9. LaTeX双栏模板插入通栏公式(跨栏插图)
  10. SAP MM/FI 自动过账实现 OBYC 接口执行
  11. 计算机二级 java和web_2020年全国计算机二级WEB程序复习知识点:JavaBean
  12. 快速排序伪代码_归并排序之入门到quot;放弃quot;
  13. spring cloud config的bootstrap.yml与application.proterties的区别
  14. GCC/G++编译过程
  15. 安卓开源电子书 阅读器_4个适用于Android的开源电子书阅读器
  16. vins-mono--视觉跟踪--feature_trackers
  17. C++程序设计语言练习4.2 茴字的几种写法
  18. 2022英语词汇积累
  19. JMeter递增加压
  20. 98城市联合发行全国旅游年票一卡通

热门文章

  1. IIR+全通滤波器级联实现系统零相位相移_matlab仿真
  2. 将FORMSTYLE类型由FSNORMAL变为FSMDICHILD时,窗体的VISIBLE自动设为TRUE.且create之后,自动运行onshow事件。
  3. Makefile中的wilcard函数
  4. stm32中断优先级分组
  5. 【内网安全】域横向网络传输应用层隧道技术
  6. 不同的寻址方式的应用——将每行的单词都变成大写
  7. Selector SelectionKey
  8. 群晖 设置 php 服务器,群晖NAS服务器iSCSI管理器配置连接及使用说明
  9. c# 连接mysql数据库_C#连接Mysql数据库
  10. 理解ResNet结构与TensorFlow代码分析