【问题标题】:MySQL on update triggerMySQL 更新触发器
【发布时间】:2013-02-26 14:23:14
【问题描述】:

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

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

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

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

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 - 无法更新存储函数/触发器中的表“客户”,因为它已被调用此存储函数/触发器的语句使用。

任何帮助表示赞赏!

【问题讨论】:

    标签: mysql triggers


    【解决方案1】:

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

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

    【讨论】:

    • 像魅力一样工作!坦克你!
    • @RikBauwens -- np,很高兴我能帮上忙!
    猜你喜欢
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多