【发布时间】:2014-01-05 04:58:15
【问题描述】:
我有两张桌子main 和hist。我想从main 表中复制一行,只要它的日期时间列被修改为hist,并将main 中的修改列重置为null,除了一列。但是我得到了变异触发错误。请帮忙。
下面是两个触发器,
CREATE OR REPLACE TRIGGER INS_HIS
AFTER UPDATE OF datetime ON main
FOR EACH ROW
INSERT INTO HIST
VALUES (Col2 = :new.col2, Col3= :new.Col3)
END;
CREATE OR REPLACE TRIGGER UPD_NUL_MAIN
AFTER INSERT ON HIST
FOR EACH ROW
UPDATE Main
SET (Col2 = NULL
Col3= NULL)
WHERE HIST.datetime = main.datetime;
END
【问题讨论】:
-
嘿 Rob,我认为错误是第二次触发,列被复制到 hist 表,但之后当它必须使主列为空时它不起作用。
-
是的 - 我看到了我的方式错误(我没有注意到数据时间的更新后)并删除了原始评论。
标签: oracle triggers mutating-table