正如标题所说,我有一个表格,其中包含 DATE 类型 last_update 的列。我希望每当我更新一行(为此特定行设置它)时,将触发器设置为 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 ;
但是得到错误
无法更新已存储的函数/触发器中的表,因为它已经存在 由陈述
使用
我该如何解决这个问题?
答案 0 :(得分:3)
将列定义更改为
会更容易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();