迁移数据时 timestamp类型字段报错: 1067 - Invalid default value for 'login_time'


MySQL数据库升级 8.0.13,原版本5.5;执行导出来的SQL文件时报错

1067 - Invalid default value for 'login_time'

原因:MySQL 5.6以后timestamp设定默认值规则改变,不能为”0000 00-00 00:00:00”

而我的字段是:`login_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '登陆时间',

 

问题解决:

查看sql_mode:

show session variables like '%sql_mode%';

结果:STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

修改sql_mode,去掉NO_ZERO_IN_DATE,NO_ZERO_DATE:

set sql_mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION";

重新执行SQL文件即可;

 

永久修改sql_model,需要修改my.ini文件;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM