問題說明
在mysql較低版本中,對sql語句并沒有嚴格的限制檢查,在5.7及以上版本開啟嚴格模式,在插入數據的時候,如果字段沒有設置默認值,則會報類似于這樣的錯誤:“Field ‘title’ doesn’t have a default value”。
解決方法
1、查看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”