Jeffrey Wang
文章84
标签144
分类12
mysql5.6部分字段无默认值不能insert的问题

mysql5.6部分字段无默认值不能insert的问题

背景

部署生产环境(mysql5.6)的时候,发现本来在测试环境(mysql5.5)好好的程序,到生产环境却报某字段没有默认值,不能添加的错误,经过一番资料查找,终于定位到/etc/my.cnf里配置的sql_mode身上。

处理办法

如果按照严格的规范,没有默认值的字段是不能在加入的时候忽略的,但是程序已经写在那里,修改的话工作量会很大,所以这里我选择了将/etc/my.cnf中的sql_mode那一行去掉。 我试过只去掉 STRICT_TANS_TABLES,但是不管用,全部注释后成功 # Recommended in standard MySQL setup # sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

引用

mysql sql_mode 解决数据库非空无默认值依然可以插入的问题 http://blog.csdn.net/ctrlk/article/details/52742434 MySQL 5.6中的sql_mode默认设置问题 http://blog.csdn.net/micahriven/article/details/12030981

本文作者:Jeffrey Wang
本文链接:https://blog.wj2015.com/2018/03/07/mysql5-6%E9%83%A8%E5%88%86%E5%AD%97%E6%AE%B5%E6%97%A0%E9%BB%98%E8%AE%A4%E5%80%BC%E4%B8%8D%E8%83%BDinsert%E7%9A%84%E9%97%AE%E9%A2%98/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×