我有两个表,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 秒
您有想法吗?
答案 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 ;