1. 程式人生 > >mysql5.7 datetime 預設值為‘0000-00-00 00:00:00'值無法建立問題解決

mysql5.7 datetime 預設值為‘0000-00-00 00:00:00'值無法建立問題解決

資料庫版本5.7.22

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。可以了。