gpt4 book ai didi

MySQL触发器只运行一个IF查询

转载 作者:行者123 更新时间:2023-11-29 18:23:02 25 4
gpt4 key购买 nike

我有以下触发器,当线索表上的行更新时运行:

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

但是,似乎唯一运行的是有关 user_id 的 IF。如果我对 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,我已将id“01”的status_id从“IN_PROGRESS”更改为“IN”。这是 order_data 表结果。
enter image description here

这是 Lead_status 表结果。
enter image description here
请删除当前触发器并使用上面的代码创建来重试。 HTH。

关于MySQL触发器只运行一个IF查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46417213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com