本文以一系列详细的sql语句,使你彻底理解mysql的四种隔离级别。
下面的例子中,用到了两个会话(session),每个session中各开启了一个事务,分别记作session A, 事务A;session B, 事务B。
准备工作
首先新建一个表‘student’,并插入两行数据
CREATE TABLE `student` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
insert student(id, name) values(1, 'zhangsan'), (2, 'lisi');
表中数据如下图:
id | name |
---|---|
1 | zhangsan |
2 | lisi |
然后用以下sql查询数据库的默认隔离级别
select @@transaction_isolation;
可以看到默认隔离级别是“可重复读”
REPEATABLE-READ
接下来通过sql详细地说明每一个隔离级别的含义。