MySQL设置更新记录时自动更新某字段

一般来讲,我们习惯在数据表内创建两个字段:create_time、update_time,当我们创建一条记录时将这两个字段设置为创建记录的时间,当我们更新记录时会更新update_time字段为更新时的时间,一般来讲许多数据库框架会提供自动更新这两个字段的功能,但是也有一部分框架不提供这个功能,自己也很难通过修改配置或者在代码中添加触发器等实现这个功能(说的就是你Entity Framework),实际上如果使用的是MySQL,那么完全可以交给数据库来完成这个工作,在编写业务代码时也无需手动为这两个字段赋值。对于这个功能,要求create_time、update_time都必须是datetime字段(date或者time字段理论上也可以)。

代码方式设置

对于create_time字段,找到定义表的语句中对该字段的定义,修改如下:

creat_time datetime NULL DEFAULT CURRENT_TIMESTAMP

对于update_time字段,找到定义表的语句中对该字段的定义,修改如下:

update_time datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Navicat设置

对要修改的表,首先进入设计表的界面,然后选中create_time,在下方设置默认值为“CURRENT_TIMESTAMP”,如下:

对于update_time,同样需要这样设置,但是需要额外勾选上“根据当前时间戳更新”:

设置完成之后,我们的代码就不需要再关注这两个字段的赋值了。

留下评论

您的电子邮箱地址不会被公开。