Mysql ERROR 1067: Invalid default value for ‘date’ 解決
Mysql ERROR 1067: Invalid default value for ‘date’ 解決
首先簡單說下原因:
SQL_MODE 設定值的問題
windows下安裝的wamp 3.06 64bit版本,預設沒有設定這個值,坑叔呀
解決方式
以window中為例子
my.ini中找到[mysqld] 位置 ,修改sql_mode 的值,如果沒有則新增
[mysqld]
sql_mode=’ STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION’
重啟mysql 服務
解析
我這邊出現的問題,是因為mysql 5.7中預設並沒有設定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
可以在這裡檢視每個值的說明 mysql的sql_mode合理設定.
出問題的值是:
NO_ZERO_IN_DATE:
在嚴格模式下,不允許日期和月份為零
NO_ZERO_DATE:
設定該值,mysql資料庫不允許插入零日期,插入零日期會丟擲錯誤而不是警告。
多說一句關於 sql_mode
ONLY_FULL_GROUP_BY
ONLY_FULL_GROUP_BY
對於GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現,那麼這個SQL是不合法的,因為列不在GROUP BY從句中
如果設定了這個模式,基本上你的每一句sql文都要加上 group by 欄位了,否則就是不合法
預設設定的sql_mode
我上面的設定就挺好,其他的看具體需求
sql_mode=’STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION’
作者:懷遠黑太歲
來源:CSDN
原文:https://blog.csdn.net/zhanghw0917/article/details/70176168
版權宣告:本文為博主原創文章,轉載請附上博文連結!