MySQL created_at 日期时间字段在数据变更时,自动更新

更新日期: 2020-04-22 阅读次数: 6207 字数: 221 分类: MySQL

今天在使用 GoAdmin 开发后台功能时,发现 GoAdmin 没有像 Laravel 那样自带 created_at 字段更新功能。即数据发送变化时,无法自动更新 created_at 字段。

而 formList.SetUpdateFn 这个功能,需要将所有字段都处理,也不方便更新 created_at.

最终在 GoAdmin QQ 群里请教了一下大佬,得到了一个不错的解决方法,即直接使用 MySQL 的 on update 功能。

MySQL created_at 日期时间字段在数据变更时,自动更新

MySQL Workbench 中右键点击字段名,在右键菜单中选择最后一项

DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

即可。

对应的 SQL 语句为:

ALTER TABLE `title_template`
CHANGE COLUMN `updated_at` `updated_at` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ;

NOW 与 CURRENT_TIMESTAMP 的区别

Notice that CURRENT_TIMESTAMP and CURRENT_TIMESTAMP() are synonyms for NOW() so you can use them interchangeably.

没有区别。

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式