MySQL timestamp设置默认值报错Invalid default value原因及解决方案
从mysql5.5数据库导出的数据放到mysql5.7.10 报错!
DROP TABLE IF EXISTS `passwd_reset`;
CREATE TABLE `passwd_reset` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`staffId` int(11) DEFAULT NULL,
`toEmail` varchar(50) DEFAULT NULL,
`token` varchar(100) DEFAULT NULL,
`validTime` int(11) DEFAULT NULL,
`createTime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=gbk;
报错:
[SQL] DROP TABLE IF EXISTS passwd_reset;受影响的行: 0时间: 0.000s [Err] 1067 - Invalid default value for 'createTime'
原因:
timestamp类型取值范围:1970-01-01 00:00:00 到 2037-12-31 23:59:59,
初始值调整为 1970-01-02 00:00:00 就可以了 暂时不清楚5.5数据库 里面是怎么弄进去这个值得。