我的朋友问我这个问题,我无法解决它。解决oracle中由并行触发造成的死锁
考虑一个场景,我在table1
上有两个触发器。 两者都是BEFORE INSERT触发器。 这两个触发器都尝试更新table2
的row 1
。 INSERT查询在table1
上运行时,两个触发器都尝试更新同一行table2
,并导致死锁。 这是一个简化的问题。 在实际情况下,大约有50个触发器和其他一些原因,因为我们无法在任何触发器中使用COMMIT。
现在请帮我解决上述问题。
- 有什么我可以按顺序的触发器。
- 是否有可能以任何方式利用保存点来解决此问题。
- 或者我需要创建一个临时表的任何方式,并用它做一些事情。
请说明是否有解决方案是可行的。