更新遺失(Lost update)

其中一個事務正在對資料進行更新,另一個事務的介入導致更新遺失。

流程圖

原資料為 AAA。

使用者_1 開始了交易,並更新了資料為 BBB。

使用者_2 也開始了交易,並更新了資料為 CCC,這時 使用者_1 交易已完成送出。

使用者_2 發現更新錯誤,退回資料,回到原來的資料 AAA,導致使用者_1 更新遺失

解決

核心問題,主要原因是 B 事務可以在 A 事務時更新

必須限制 B 事務 只能讀取,不可作更新,等待 A 事務完成後才能開始事務。

透過 隔離模式 Read_Uncommitted 解決。

Last updated

Was this helpful?