0
我有插入一條記錄與唯一的索引上A
柱和柱B
,並且如果這是成功,執行無法回滾(API請求)一個異步動作併發的工作流程,內部的單筆交易。具有唯一索引鎖定行
表示API請求應該只發生一次,但是如果該記錄並行插入,可能會多次觸發。
如果我沒有弄錯,解決此問題的方法是在違規行上設置鎖定,以確保任何並行惰性數據都將等到初始事務完成。
哪個鎖定對於這個用例是正確的?
我有插入一條記錄與唯一的索引上A
柱和柱B
,並且如果這是成功,執行無法回滾(API請求)一個異步動作併發的工作流程,內部的單筆交易。具有唯一索引鎖定行
表示API請求應該只發生一次,但是如果該記錄並行插入,可能會多次觸發。
如果我沒有弄錯,解決此問題的方法是在違規行上設置鎖定,以確保任何並行惰性數據都將等到初始事務完成。
哪個鎖定對於這個用例是正確的?
不需要顯式鎖定。
如果第二個交易插入該一個未致力於其他事務已經插入的PK的相同值,第二將等待,直到所述第一事務提交或回退。
如果第一個事務回滾,第二個事務將成功。如果第一個事務提交,第二個會得到「唯一密鑰違規」錯誤。
是的,問題是我在事務內執行API請求,所以兩個事務可以插入行,發送請求,然後其中一個將回滾。 API請求位於事務內部,因爲如果API請求失敗,應該回滾插入。 – Tarlen