问题说明
在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"
原文地址:https://cloud.tencent.com/developer/article/1989670
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。