mysql timeStamp默认值0000-00-00 00:00:00 报错
2017-11-21 18:04:44
mysql timeStamp默认值0000-00-00 00:00:00 报错
从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 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updateTime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
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 'updateTime'
原因:
timestamp类型取值范围:1970-01-01 00:00:00 到 2037-12-31 23:59:59,
初始值调整为 1970-01-02 00:00:00 就可以了
因为MYSQL 5.7 对TIMESTAMP的默认值 做了修改。不再支持这种不严格的数据。所以有两个方式,一是按上面的方式进行修改,把默认值 修改到允许 的范围内
二是载到原来生成的SQL的MYSQL版本,比如5.5
发表评论: