2 つの独立したトランザクションでダーティ リードの異常を再現したいと考えています。ターミナルを 2 回起動し、両方をデータベースに接続しました。start transaction;
両方のコマンドでトランザクションを開始しました。次に、最初のターミナル ウィンドウで 1 つの情報を更新したところ、次のように表示されましたRows matched: 1 Changed: 1 Warnings: 0
。このテーブルのすべてのデータを選択すると、変更がありました。しかし、2 番目のターミナル ウィンドウで変更されたデータを表示しようとすると、変更select * from adress;
ではなく古いデータが表示されました。
最後に、ダーティ リードの異常を証明し、適切な分離レベルでこれを回避する必要があります。
これは、私の端末ウィンドウの 2 つのスクリーンショットです。
トランザクション 1:
取引 2:
私は何を間違っていますか?
助けてくれてありがとう、ロビン