所以,我有一个带有一些字段的 MySQL 表客户
table <Customers>
ID Name Description State
0 Jack waiting 0
1 Jane complete 1
我想写一个触发器,更新状态字段 需要将State的值设置为1,如果Description 更新并获得完整的值(value)
到目前为止,我已经想出了这个:
delimiter $$
CREATE TRIGGER customerUpdated
BEFORE UPDATE ON Customers
FOR EACH ROW
BEGIN
IF NEW.Description = 'completed' THEN
UPDATE Customers SET State = '1' WHERE id = OLD.id;
END IF;
END$$
delimiter ;
但是我得到了错误:
1442 - 无法更新存储函数/触发器中的表“Customers”,因为它已被调用此存储函数/触发器的语句使用。
感谢任何帮助!
最佳答案
我认为您只需要设置 NEW.State 而不是运行 UPDATE 语句:
IF NEW.Description = 'completed' THEN
SET NEW.State = 1;
END IF
关于MySQL on update 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15091476/