2013-03-26 21 views
0

我有一個發票對象和一個付款對象。我希望能夠將發票添加到發票中,直到發票上的未付金額爲零。在任何情況下,發票上的未付金額都不應低於零。更新前和更新後觸發器是否消除競態條件?

我可以創建一個更新觸發器來檢查即將應用於發票的付款金額,並引發一個AddError以防止數據提交。但是,我應該在更新之前還是更新之後使用?

有沒有比賽條件。如果兩個人幾乎同時以200美元未付金額發票支付200美元。發票上的未付金額可以爲200美元,因此這兩種付款都適用於發票。這會使總數減少。

回答

1

查看Locking Statements文檔中的For Update關鍵字。

使用此選項可確保事務在其他用戶更新之前完成。