gpt4 book ai didi

mysql - 使用触发器更新 MySQL 表

转载 作者:行者123 更新时间:2023-11-30 00:11:22 27 4
gpt4 key购买 nike

我有一个 TEMP 表,当该表通过网站显示时,该表使用存储过程提供数据。这很好用。我将此表设置为可编辑表,这样如果/当编辑此表中的数据时,它会将更新后的数据发送回我的 TEMP 表,再次按应有的方式更新。我现在有一个触发器,它将从 TEMP 中获取某些字段并更新我的 LIVE 数据库表。

我的问题是,当我添加其他字段以根据更新内容进行更新时,它会对 TEMP 表中的每一行执行此操作。我尝试了各种方法,下面是我最后一次尝试更新该特定行。

CREATE 
DEFINER = 'user'@'%'
TRIGGER update_epcplanneddate
AFTER UPDATE
ON ims.temp_tobebooked
FOR EACH ROW
BEGIN
UPDATE epc_planning p
INNER JOIN temp_tobebooked b ON b.PropID = p.PropID
SET
p.EPCStatus = CASE WHEN p.PropID = b.PropID THEN 3 END,
p.EPCPlannedDate = b.EPCPlannedDate,
p.EPCBookingDate = CASE WHEN p.PropID = b.PropID THEN NOW() END,
p.LastUpdateDate = CASE WHEN p.PropID = b.PropID THEN NOW() END,
p.LastUpdateUser = b.InputBy
WHERE p.PropID = b.PropID;
END

如何根据此更新更新我需要更新的内容以及额外字段?

最佳答案

因此,将 JOIN 更改为使用 NEW.column 触发器现在看起来像这样

CREATE 
DEFINER = 'user'@'%'
TRIGGER update_epcplanneddate
AFTER UPDATE
ON temp_tobebooked
FOR EACH ROW
BEGIN
UPDATE epc_planning p
SET
p.EPCStatus = 3,
p.EPCPlannedDate = NEW.EPCPlannedDate,
p.EPCBookingDate = NOW(),
p.LastUpdateDate = NOW(),
p.LastUpdateUser = NEW.InputBy
WHERE p.PropID = NEW.PropID;
END

关于mysql - 使用触发器更新 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24015811/

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