mysql 入門

MySQL 建表時 date 型別的預設值設定

在執行下面 SQL 語句時發現報錯

CREATE TABLE `jc_site_access_pages` ( `access_date` date NOT NULL DEFAULT ‘0000-00-00’ COMMENT ‘訪問日期’, `access_time` time NOT NULL COMMENT ‘訪問時間’,) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 COMMENT=‘訪問詳細頁面表’;

報的錯誤是時間的預設值有錯誤,查閱後發現 MySQL 5。7 版本開始有了一個 STRICT MODE(嚴格模式),此模式中對預設值做了一些限制。

解決方法就是修改 sql_mode

mysql 入門

—— 檢視當前select @@sql_mode;—— 去掉 NO_ZERO_IN_DATE 和 NO_ZERO_DATEset @@sql_mode=(select replace(@@sql_mode,‘NO_ZERO_IN_DATE,NO_ZERO_DATE’,‘’)); —— 檢視全域性select @@global。sql_mode;set @@global。sql_mode=(select replace(@@global。sql_mode,‘NO_ZERO_IN_DATE,NO_ZERO_DATE’,‘’));

mysql 入門

設定完成後重新連線 MySQL 即可