mysql 5.7 sql_mode設(shè)置問題
mysql 5.7 sql_mode設(shè)置問題
藍(lán)隊(duì)云小課堂:
問題說明
在mysql較低版本中,對(duì)SQL語句并沒有嚴(yán)格的限制檢查,在5.7及以上版本開啟嚴(yán)格模式,在插入數(shù)據(jù)的時(shí)候,如果字段沒有設(shè)置默認(rèn)值,則會(huì)報(bào)類似于這樣的錯(cuò)誤:“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平臺(tái))或my.cnf(Linux平臺(tái))
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、如果還是不成功,可以設(shè)置為
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
更多小知識(shí),可聯(lián)系藍(lán)隊(duì)云一起探討。