分離レベルはSELECTSにのみ適用され、UPDATESには適用されませんか?
SELECTSのさまざまな分離動作を示したシナリオ
1) 0:00 Thread A runs a query that returns 1000 rows that takes 5 minutes to complete
2) 0:02 Thread B runs a query that returns the same 1000 rows
3) 0:05 Thread A updates the last 1 rows in this result set and commits them
4) 0:07 Thread B's query returns*
分離レベルに応じて、#4の結果セットにはスレッドAの変更が含まれるか含まれません。UPDATESについても同じですか?
シナリオの例を次に示します。
Thread A: UPDATE ... WHERE primary_key = 1234 AND version = 5
Thread B: UPDATE ... WHERE primary_key = 1234 AND version = 5
スレッドAとスレッドBの両方が同時にトランザクションを入力し、スレッドBがスレッドAの後に更新を実行する場合、スレッドBの更新は失敗しますか、それともバージョン5のレコードを「認識」して成功しますか?
データベースに依存しますか?例:Oracle vs MySql vs PostgreSQL?