意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

mysql 5.7 sql_mode设置问题

来源:佚名 编辑:佚名
2024-07-16 13:16:46

问题说明

在mysql较低版本中,对SQL语句并没有严格的限制检查,在5.7及以上版本开启严格模式,在插入数据的时候,如果字段没有设置默认值,则会报类似于这样的错误:“Field ‘title’ doesn’t have a default value”。

解决方法

1、查看sql_mode

select @@sql_mode

查询出来的值为:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

2、修改 my.ini(Windows平台)或my.cnf(Linux平台)

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

在sql_mode 中去掉only_full_group_by

3、如果还是不成功,可以设置为

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"


本网站发布或转载的文章均来自网络,其原创性以及文中表达的观点和判断不代表本网站。
上一篇: 为什么网站会被挂马及如何做好防范? 下一篇: 云服务器php version影响网站性能吗