如何使用触发器mysql更新表

时间:2019-07-19 15:00:44

标签: mysql triggers

我有两个表,t1和t2。 我正在尝试触发一个触发器,以便在t1得到更新时,我检查是否更新的是t1.nStatus。

如果t1.nStatus = 2,我需要为所有等于t1.nId的t2.customer_Id设置t2.bEnabled = 1

CREATE OR REPLACE TRIGGER change AFTER UPDATE ON t1
    FOR EACH ROW
BEGIN
    IF NEW.nStatus = 2 THEN
        UPDATE t2 SET bEnabled = 1 WHERE t2.immobile_id = NEW.nId;
    END IF;
END;

我得到的错误:

  

已执行1个查询,0个成功,1个错误,0个警告

     

查询:UPDATE之后,创建或替换触发器changeStatusImmobile   如果NEW.nStatus = 2,则每行固定不动,然后UPDATE选择...

     

错误代码:1064您的SQL语法错误;检查   对应于您的MariaDB服务器版本的手册   在第5行的''附近使用的语法

     

执行时间:0秒传输时间:0秒总时间:0.146   秒

您有想法吗?

1 个答案:

答案 0 :(得分:0)

尝试设置定界符

DELIMITER $$

CREATE OR REPLACE TRIGGER change AFTER UPDATE ON t1
    FOR EACH ROW
BEGIN
    IF NEW.nStatus = 2 THEN
        UPDATE t2 SET bEnabled = 1 WHERE t2.immobile_id = NEW.nId;
    END IF;
END$$

DELIMITER ;