mysql中Invalid default value for 'stime'問題


在執行mysql數據庫時報錯

CREATE TABLE `advert_schedule_time` (
  `advert_id` int(11) NOT NULL DEFAULT '0' COMMENT '廣告id',
  `stime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '開始時間',
  `etime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '結束時間',
  `times` int(11) NOT NULL DEFAULT '0' COMMENT '投放次數',
  UNIQUE KEY `adverttime` (`advert_id`,`stime`,`etime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '廣告時間排期表';

首先用下面的命令看下sql_mode

show variables like 'sql_mode';
如果查詢的結果如下:

ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
如果結果中含有NO_ZERO_IN_DATE, NO_ZERO_DATE則執行下面的命令:

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


免責聲明!

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



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