无法执行触发器,任何人都可以解释我在哪里做错了。
CREATE OR REPLACE TRIGGER HK_WS_ED_CT_T1
BEFORE INSERT OR UPDATE OF CI On HK_WS_ED_CT
FOR EACH ROW
BEGIN
IF (:new.CI = CI) THEN
UPDATE HK_WS_ED_CT
SET (TRANS_OTHER, TRANS_OTHER_DESC) =
(SELECT TRANS_OTHER, TRANS_OTHER_DESC
FROM HK_WS_ED_CT
where CI = :NEW.CI and rownum <=1 order by DATE)
end if;
END;
答案 0 :(得分:0)
您正在更新触发器所在的表。这是不允许的。
您应该将:new.trans_other
等同于某个内容并将:new.trans_other_desc
置于某事。
然后,该字段的更新即可。
如果你真的想要更新同一个表的所有行,你应该看一下复合触发器。但我怀疑这是你想要的。
数据库触发器的主要问题是您无法从触发器触发的表中选择,插入,更新,删除。此时此表已被锁定。