指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

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类型字段不更新为当前时间。