ORA-04091 - 如何更改触发器触发的表?

时间:2010-12-06 13:57:58

标签: sql oracle triggers ora-04091

所以我有表foo,我想在触发foo时触发其他t_foo行:

CREATE OR REPLACE TRIGGER "t_foo" AFTER INSERT OR DELETE OR UPDATE ON foo

/*delete some other records from foo that are not :NEW.* or :OLD.* \*

如果不使ORA-04091:表名变异,我怎么能这样做,触发器/函数可能看不到它。这甚至可能吗?

3 个答案:

答案 0 :(得分:8)

为什么不在存储过程中执行此操作,您可以在事务中包装插入和删除操作,并且可以清楚地记录此副作用行为?

答案 1 :(得分:6)

答案 2 :(得分:2)

这基本上意味着您在表中具有相互依赖的行,可能是具有从列到主键的自引用的分层结构。您是否考虑过ON DELETE CASCADE