【发布时间】:2022-01-14 16:31:19
【问题描述】:
我正在尝试为TRAVELEXPENSE 表的插入操作创建触发器。
这是我更新的代码
create or replace TRIGGER tr_updates_requesttotal
AFTER INSERT ON TRAVELEXPENSE
FOR EACH ROW
BEGIN
UPDATE REIMBURSEMENTREQUEST
SET ReimbursementTotal = :NEW.ExpenseAmount
WHERE ReimbursementRequestID = :NEW.ReimbursementRequestID;
END;
【问题讨论】:
-
您需要通过
ON条件而不是WHERE来JOIN表。但是在成功编译触发器后,您将面临ORA-04091: table TRAVELEXPENSE is mutating,因为在行级触发器中您无法从同一个表中进行选择。根据您的代码,您不需要访问此表,只需直接设置新金额(或您的子查询无效并返回多行)。请提供带有示例数据的示例表,并描述您希望通过一些连续交易实现的目标。