MySQL的触发器只运行一个,如果查询
问题描述:
我有一行时在引线表更新上运行以下触发:MySQL的触发器只运行一个,如果查询
BEGIN
IF NEW.status_id <=> OLD.status_id THEN
BEGIN
insert into lead_status
(lead_id, status_ID)
values (OLD.id, NEW.status_id);
END;
END IF;
IF NEW.user_id <=> OLD.user_id THEN
BEGIN
insert into lead_owner
(lead_id, staff_ID)
values (OLD.id, NEW.user_id);
END;
END IF;
END
然而,似乎运行的是IF关于USER_ID唯一一个。如果我使用status_id进行更改,触发器似乎不会运行。
难道我做错了什么在这里它不跑?保存触发器时,我没有收到任何语法错误。
非常感谢。
答
我有模拟相同的触发和你,这是正常工作。下面是触发代码
CREATE TRIGGER testTrigger
AFTER UPDATE ON order_data
FOR EACH ROW
BEGIN
IF NEW.status_id <> OLD.status_id THEN
BEGIN
insert into lead_status
(lead_id, status_ID)
values (OLD.id, NEW.status_id);
END;
END IF;
IF NEW.user_id <> OLD.user_id THEN
BEGIN
insert into lead_owner
(lead_id, staff_ID)
values (OLD.id, NEW.user_id);
END;
END IF;
END;
假设主表调用order_data,我从“IN_PROGRESS”改变STATUS_ID为“IN”的ID“01”。这是order_data表结果。
的区别是一个不等于需要时,OP已编码的空安全平等的吗? –
@P.Salmon就是这样,把它改成使它工作。 –