【发布时间】:2017-04-01 09:40:12
【问题描述】:
我想要一个更新列值的触发器,但我只想更新一小部分取决于插入行的值的行。 我的触发器是:
CREATE OR REPLACE TRIGGER example
AFTER INSERT ON table1
FOR EACH ROW
BEGIN
UPDATE table1 t
SET column2 = 3
WHERE t.column1 = :new.column1;
END;
/
但是当我使用 FOR EACH ROW 时,我在尝试时遇到了问题,我得到了变异表运行时错误。 其他选项是不设置 FOR EACH ROW,但如果我这样做,我不知道插入的“column1”进行比较(或者我不知道如何知道它)。
如何更新一组取决于最后插入的行的行?
我正在使用 Oracle 9。
【问题讨论】:
-
我曾经在 FOR EACH ROW TRIGGER 的工作表中写入值,在后表触发器中我处理了从工作表中选择的值。
-
强烈建议您遵循以下@GordonLinoff 的建议。这不是一个好的数据模型。
标签: sql database oracle triggers