mysql5.7.26 datetime 默認值爲‘0000-00-00 00:00:00'值無法創建問題

數據庫版本5.7.22,我(毛竹依米)的是5.7.26

CREATE TABLE users (
    id INT NOT NULL AUTO_INCREMENT,
    name varchar(50) NOT NULL default '',
    indate DATETIME NOT NULL default '0000-00-00 00:00',
    PRIMARY KEY (id)
)AUTO_INCREMENT= 1 ENGINE=InnoDB DEFAULT CHARSET=utf8;

解決方案:

使用root登陸數據庫

1、查看sql_mode:

mysql> select @@sql_mode;

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 

2、NO_ZERO_IN_DATE,NO_ZERO_DATE是無法默認爲‘0000-00-00 00:00:00’的根源,去掉之後再次新建表就可以了

SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

注:
NO_ZERO_IN_DATE:在嚴格模式下,不允許日期和月份爲零
NO_ZERO_DATE:設置該值,mysql數據庫不允許插入零日期,插入零日期會拋出錯誤而不是警告。

測試新建表,ok。可以了。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章