mysql5.7下,之情迁移文件的时候报错:
1067 Invalid default value for 'created_at' (SQL: alter table d_slides modify column created_at TIMESTAMP DEFAULT NULL)
这个在mysql8下没有问题,但是在mysql5.7下有问题,还来发现需要把 /etc/my.cnf下的 mysqld 添加如下配置:
explicit_defaults_for_timestamp = ON
然后重启: systemctl restart mysqld
再次执行迁移文件,没有任何问题
关于这个参数:
默认情况下,timestamp 类型字段所在数据行被更新时,该字段会自动更新为当前时间,而参数explicit_defaults_for_timestamp控制这一种行为。
explicit_defaults_for_timestamp=off,数据行更新时,timestamp类型字段更新为当前时间;
explicit_defaults_for_timestamp=on,数据行更新时,timestamp类型字段不更新为当前时间。
