gpt4 book ai didi

mysql - 将 MySQL 触发器移动到 DB2;关键字 NEW 的问题

转载 作者:行者123 更新时间:2023-11-28 23:57:16 27 4
gpt4 key购买 nike

我在 MySQL 中使用了这个触发器:

CREATE TRIGGER Recharge_trigger
AFTER INSERT ON Recharges
FOR EACH ROW
UPDATE Balances
SET Balance = Balance + NEW.Amount
Where Uid = NEW.Uid AND Stid = NEW.Stid;

每当我在 Recharges 表中插入一行时,它会自动更新 Balances 表中的 balance 列。

但是,当我尝试在 DB2 中运行它时,它给出了这个错误:

Server Error: Error for batch element #1: "NEW.AMOUNT" is not valid in the context where it is used.. SQLCODE=-206, SQLSTATE=42703, DRIVER=3.66.46

我认为是关键字 NEW 搞砸了。有什么方法可以在 DB2 中编写它吗?

最佳答案

我无权访问任何 DB2 数据库,因此无法对其进行测试,但查看文档后我认为您需要包含一个 REFERENCING 子句。试试这个:

 CREATE TRIGGER Recharge_trigger
AFTER INSERT ON Recharges
REFERENCING NEW AS N
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
UPDATE Balances SET Balance = Balance + N.Amount Where Uid = N.Uid AND Stid = N.Stid;
END

关于mysql - 将 MySQL 触发器移动到 DB2;关键字 NEW 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31324354/

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