Mysql ON UPDATE CURRENT_TIMESTAMP与更新后设置时间到现在()的触发器

问题描述 投票:0回答:1

在搜索其他内容时,我在测试数据库中找到了此触发器:

begin
     set NEW.UpdatedAt = now();
end

我很困惑......这与将列定义更改为以下内容有何不同?

alter table TableName change UpdatedAt ON UPDATE CURRENT_TIMESTAMP;

我是不是在触发器中做任何优点?

mysql database-trigger
1个回答
1
投票

对于早期版本的MySQL,ON UPDATE仅适用于数据类型为TIMESTAMP的列。 DATETIME或任何其他数据类型不支持该功能。

使用TIMESTAMP列,使用两个TIMESTAMP列自动设置定义表可能有点棘手;在插入行时将NOW()分配给一列,并在更新行时将NOW()分配给不同的列。

触发器可以解决这些限制。

© www.soinside.com 2019 - 2024. All rights reserved.