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