更新日期:2024年09月11日
事务T1:
START TRANSACTION;
INSERT INTO test VALUES(2,'test2','test123');
COMMIT;
事务T2:
START TRANSACTION;
INSERT INTO test VALUES(3,'test3','test123');
COMMIT;
场景1:
开启事务T1,不提交的同时开启事务T2,事务T1 执行INSERT 完成后,执行事务
T2 的INSERT 语句,可以执行成功,读已提交和可重复读隔离级别下,此时在事务T1
中执行SELECT 语句,看不到事务T2 中插入的数据,事务T2 中执行查询语句看不到
事务T1 中插入的数据。
场景2:
READ COMMITTED 级别
开启事务T1,不提交的同时开启事务T2,事务T1 执行INSERT 完成后直接提交,事
务T2 中执行INSERT 语句后执行查询语句,可以看到事务T1 中插入的数据。
REPEATABLE READ 级别
开启事务T1,不提交的同时开启事务T2,事务T1 执行INSERT 完成后直接提交,事
务T2 中执行INSERT 语句后执行查询语句,看不到事务T1 中插入的数据。