MySQL更新触发器

时间:2013-02-26 14:23:15

标签: mysql triggers

所以,我有一个带有一些字段的MySQL表客户

table <Customers>
ID    Name    Description    State
0     Jack    waiting        0
1     Jane    complete       1

我想写一个触发器,它会更新State字段 如果描述,则需要将State的值设置为1 已更新并获得值完整

到目前为止,我已经想出了这个:

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',因为它已被调用此存储函数/触发器的语句使用。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

我认为你只需要设置NEW.State而不是运行UPDATE语句:

IF NEW.Description = 'completed' THEN  
   SET NEW.State = 1;
END IF