数据表中原有的数据:SELECT * FROM transaction_test;
id name age
20 TEST 10
开启一个事务A:只是执行 GEGIN TRANSACTION IOSLATION LEVEL REPEATABLE READ; 不要提交,后面还有操作。
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ
> OK
> Time: 0.001s
开启事务B:执行插入操作并提交。
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
INSERT INTO transaction_test VALUES (20, 'TEST----', 20);
COMMIT;
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ
> OK
> Time: 0s
INSERT INTO transaction_test VALUES (20, 'TEST----', 20)
> Affected rows: 1
> Time: 0s
COMMIT
> OK
> Time: 0.002s
此时在事务A中执行查询操作。结果如下。
id name age
20 TEST 10
20 TEST---- 20
场景二
数据库表中的数据:SELECT * FROM transaction_test;
id name age
20 TEST 10
20 TEST---- 20
开启事务A,只执行一下操作
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SELECT * FROM transaction_test;
返回结果:
id name age
20 TEST 10
20 TEST---- 20
开启事务B,插入一条数据,并提交。
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
INSERT INTO transaction_test VALUES (120, 'YYYYYYY', 120);
COMMIT;
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ
> OK
> Time: 0.001s
INSERT INTO transaction_test VALUES (120, 'YYYYYYY', 120)
> Affected rows: 1
> Time: 0.001s
COMMIT
> OK
> Time: 0.002s
开启事务C查询,结果如下: