gpt4 book ai didi

MySQL 更新后自动更新列

转载 作者:行者123 更新时间:2023-11-29 01:50:58 25 4
gpt4 key购买 nike

正如标题所说,我有一个表,其中有一列名为 last_update,类型为 DATE。我想制作一个 trigger ,每次我更新一行时将其设置为 CURDATE() (为此特定行设置)。我试过这个:

delimiter $$
CREATE TRIGGER before_customer_update before update on customer for each row
begin
update customer set last_update = CURDATE() where id = old.id;
end $$
delimiter ;

但是得到一个错误

can't update table in stored function/trigger because it is already used by statement

我该如何解决?

最佳答案

将列定义更改为

会更容易
last_update timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

如果你真的想在触发器中执行(用NEW引用当前记录):

替换

update customer set last_update = CURDATE() where id = old.id;

set NEW.last_update = CURDATE();

关于MySQL 更新后自动更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43425755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com