2017-04-14 112 views
0

我對觸發器執行順序有疑問。
來解釋它,我將用一個例子:
我已經上表myTable的觸發,因此,這個觸發器中有上myTable的的更新,這引發同一觸發的另一個實例(我會打電話一審「一個」這個新的實例「」),現在的問題是:
將實例在asyncronous的方式開始和實例一個繼續執行,或將成爲實例B已啓動且實例A將等待B完成?觸發器執行順序

我希望我解釋自己

對不起,我的英文不好

+0

你爲什麼要這樣對自己?應謹慎使用觸發器:它們對事物有微妙但可能深刻的影響,我想不出一個很好的理由讓觸發器更新將重新調用觸發器的表。 – jleach

+0

這只是一個關於觸發器執行的好奇心,但是已經創建的工作也有類似的情況 – davidinho

回答

0

我會感到非常驚訝,如果內觸發(B)不會阻止外部觸發(A)。 原因是Determinism - 如果B異步運行,它可能會在A之後的之前完成,並且如果它們都嘗試更新同一個字段,則無法保證最終結果是什麼。

即使B異步運行,觸發它的語句只會在後返回所有觸發器都已完成。這是由於DBMS的原理AtomicConsistent

還有就是你可以用它來確定一個觸發能否掀起另一觸發設置:Nested Triggers