私はこのトピックに不慣れで、理解していることを確認しようとしています。次の例を検討してください:-
トランザクションには、select ステートメントと update ステートメントが含まれています。ここで、update ステートメントは、select ステートメントから返された結果セットに依存します。ユーザー A と B が同時にトランザクションを実行し、両方のユーザーがデータを選択し、Update を実行しようとしています。ユーザー A が最初に更新を実行すると、ユーザー B にバグが発生する可能性があります。最新の結果セットがないためです。これはファントム リード ケースと呼ばれます。
serializable 分離レベルの場合: 上記のケースは発生しません。トランザクションは完全に分離されており、同時に動作することはできません。ユーザー B のトランザクションは、ユーザー A がトランザクションを完了するまで select ステートメントを実行できません。ユーザー B は、トランザクション A が完了するまで待ちます。
Repeatable read 分離レベルの場合: トランザクション B はデータを読み取ることはできますが、データを変更することはできません。これにより、ファントム読み取りが発生する可能性があります。
これが正しい理解かどうか言えますか?