我对触发器的执行令有疑问。
为了解释这一点,我将举一个例子:
我在表myTable上有一个触发器,所以在这个触发器中有一个myTable更新,这会抛出同一个触发器的另一个实例(我将调用第一个实例'A‘和这个新实例'B'),现在的问题是:
实例B是以异步方式启动,实例A将继续执行,还是实例B已启动,实例A将等待B完成?
我希望我能解释清楚
为我糟糕的英语感到抱歉
发布于 2017-04-14 11:47:21
如果内部触发器(B)不阻止外部触发器(A),我会非常惊讶。这样做的原因是确定性--如果B异步运行,它可能在A之前或之后完成,如果它们都试图更新同一个字段,则无法保证最终结果是什么。
即使B确实异步运行,触发它的语句也只有在所有触发器完成后才会返回。这是由于DBMS的原子和一致性原则所致。
有一个设置可以用来确定触发器是否可以触发另一个触发器:嵌套触发器。
https://stackoverflow.com/questions/43408090
相似问题