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

发表评论:

Powered by PHP 学习者(mail:517730729@qq.com)

原百度博客:http://hi.baidu.com/ssfnadn

备案号:闽ICP备17000564号-1

开源中国 PHPCHINA