Mysql5.7.26导入表的过程中报错:[ERR] 1067 - Invalid default value for ‘update_time‘

百度一下“[ERR] 1067 - Invalid default value for”,看到这篇文章这样写的

timestamp类型对应日期范围为:1970-01-01 00:00:01 ~ 2037-12-31 23:59:5,因为导入的表字段update_time默认值不在该区间内,所以报错。

报错的原因是:sql_mode配置问题

以上是网上说的,而我的实际情况是:

news表update_time字段类型是datetime,这个默认值'0000-00-00 00:00:00'在版本Mysql5.7.26中估计也是错的

`update_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间',

当添加主键操作时出错如下,

[SQL]ALTER TABLE `news`
  ADD PRIMARY KEY (`id`);

[ERR] 1067 - Invalid default value for 'update_time'

 

我的系统是window10,php环境是xp小皮phpstudy_pro,按网上说的操作如下:

----------------

在Mysql5.7之后,Mysql使用的是严格模式,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
解决办法:在mysql安装根目录新建my.ini文件(windows环境),添加sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

重启Mysql服务,重新导入数据库成功!!!

-------------------

执行完成结果:

[SQL]ALTER TABLE `news`
  ADD PRIMARY KEY (`id`);
受影响的行: 0
时间: 0.843s

确实成功了,

后记:遇到问题要敢于尝试,万一成功了呢

 

 

你可能感兴趣的:(数据库,mysql)