數據庫並發操作可能出現的問題之---更新丟失


今天遇到了一個問題,就是數據庫四大隔離別,以及隔離問題:我們常知道的就是臟讀、不可重復讀和幻讀。

但是今天我學到了,一個新可能出現的問題就是:丟失更新

參考:http://www.pianshen.com/article/9331159795/

https://blog.csdn.net/huangyueranbbc/article/details/84304682

1.更新丟失(LostUpdate):
A和B事務並發執行,A事務執行更新后,提交;B事務在A事務更新后,B事務結束前也做了對該行數據的更新操作,然后回滾,則兩次更新操作都丟失了。

第一類丟失更新(回滾丟失,Lost update)。
在事務A期間,事務B對數據進行了更新;在事務A撤銷之后,覆蓋了事務B已經提交的數據。
SQL92沒有定義這種現象,標准定義的所有隔離界別都不允許第一類丟失更新發生。

 

第二類丟失更新(覆蓋丟失/兩次更新問題,Second lost update)。
在事務A期間,事務B對數據進行了更新;在事務A提交之后,覆蓋了事務B已經提交的數據。
第二類丟失更新,實際上和不可重復讀是同一種問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM