0

我需要在 syc 中保留两个表,因此当在表 A 中插入行并且其中一个列具有一定条件时,应在表 B 中添加记录。此外,当在表 B 中插入行时,应在表 A 中添加记录。如何这使用触发器完成。我在插入后对两个表都有触发器,但给出了 ORA-04091 错误。

4

2 回答 2

0

使用复合触发器检查记录是否针对特定条件退出,然后不要进一步触发以避免循环依赖。

于 2020-02-07T01:17:00.243 回答
0

Table is mutating,这意味着您正在从中选择它同时受到插入(或更新)的影响。从 11g 开始,复合触发器就是解决之道。在早期的 Oracle 版本(10g 和更低版本)中,已经使用包来处理它。

然而,mutating table 经常会引发一个问题:你做对了吗?也许您使用的代码可以重写,以避免错误。

最后,如果这两个表包含相同的数据,为什么你有两个表而不是一个?

于 2020-02-04T18:02:06.947 回答