在搜索其他内容时,我在测试数据库中找到了此触发器:
begin
set NEW.UpdatedAt = now();
end
我很困惑......这与将列定义更改为以下内容有何不同?
alter table TableName change UpdatedAt ON UPDATE CURRENT_TIMESTAMP;
我是不是在触发器中做任何优点?
对于早期版本的MySQL,ON UPDATE
仅适用于数据类型为TIMESTAMP
的列。 DATETIME
或任何其他数据类型不支持该功能。
使用TIMESTAMP
列,使用两个TIMESTAMP
列自动设置定义表可能有点棘手;在插入行时将NOW()
分配给一列,并在更新行时将NOW()
分配给不同的列。
触发器可以解决这些限制。