下面是導入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
