百度一下“[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
确实成功了,
后记:遇到问题要敢于尝试,万一成功了呢