[Err] 1067 - Invalid default value for 'xxxTime'


下面是導入sql腳本的的局部腳本

`xxxTime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

發現是NO_ZERO_IN_DATE,NO_ZERO_DATE這兩個參數限制時間不能為0.

show variables like 'sql_mode';

ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 

set session sql_mode='ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

NO_ZERO_DATE
在嚴格模式,不要將 '0000-00-00'做為合法日期。你仍然可以用IGNORE選項插入零日期。在非嚴格模式,可以接受該日期,但會生成警告。


NO_ZERO_IN_DATE

在嚴格模式,不接受月或日部分為0的日期。如果使用IGNORE選項,我們為類似的日期插入'0000-00-00'。在非嚴格模式,可以接受該日期,但會生成警告。

 

處理的辦法:

1,  修改sql_mode,去掉NO_ZERO_IN_DATE,NO_ZERO_DATE這兩個參數

2,  修改表的default值,去掉default也可以。

alter tabletxt_register modify currentTime datetime not null;

alter tabletxt_register add httpHeaderInfo varchar(10000) DEFAULT 'null';

 

這個出現的原因應該是建表前sql_mode沒有這兩個值,建表后修改的sql_mode

本文參考: http://blog.csdn.net/xionglang7/article/details/44499307


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM