資料庫的操作會併發處理,因此也會遇到Race Condition問題
此篇文章會說明各種問題情境與解法
這裡主要是考慮使用的是 PostgreSQL 資料庫的狀況,不一樣的資料庫可能會有不同結果
- 髒寫 (Dirty Write)
在前一個寫入還沒commit前,後面的寫入覆蓋前面的值,就是 Dirty Write
範例:
DB: X = 0
Transaction A:寫入 X = 10
Transaction B:寫入 X = 5
Transaction A:COMMIT
Transaction B:COMMIT
最後 X = 5,Transaction A 的寫入被蓋掉了