在執行下面 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
-- 查看當前 select @@sql_mode; -- 去掉 NO_ZERO_IN_DATE 和 NO_ZERO_DATE set @@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 即可