Home > Linux > 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

Your email address will not be published. Required fields are marked *

*