無法重複的讀取(Unrepeatable Read)
如果一個事務重複查找同一筆相同的資料,卻有不同的結果,就叫做 Unrepeatable Read。
流程圖

原資料為 AAA。
使用者_1 開始交易,並取得資料 AAA。
使用者_2 這時也開始交易,在使用者_1 取得第一次資料後,完成更新資料 BBB。
使用者_1 再次使用相同條件,取得第一次的資料得到 BBB。
解決
❗ 核心問題, A 事務在同一次事務未完成前,同樣的搜尋得到不同的結果。
若要避免此行為,必須確保交易在確認前不阻止其他讀取交易,但會阻止更新交易。
鎖(Lock)透過 隔離模式 Repeatable Read 解決。
資料庫至少要保證不會出現 更新遺失、髒讀、無法重複的讀取 的問題。
Last updated
Was this helpful?