私はmysqlでトランザクションを学んでいます。行動が理解できません。私のデータベースの分離レベルは繰り返し読み取りです。データベース スキーマ:
creade database my_db;
use my_db;
create table locktest(
id integer,
val integer,
primary key (id)
);
insert into locktest (id, val) values (3,6);
2 人のユーザーを作成しました。User1 は次に行います。
start transaction;
select * from locktest where id = 3;
ID = 3、値 = 6 を取得します。
次に、user2 が次のように更新します。
update locktest set val = 7 where id = 3;
select * from locktest where id = 3;
結果は id = 3、val = 7 です。
user1 は次を選択します。
select * from locktest where id = 3;
id = 3、値 = 7
それで、私の質問はなぜuser2がテーブルを更新できるのですか? user1によってロックされるべきではありませんか? そして、 user1からの最後の選択で更新された値を取得するのはなぜですか?