前提
# 设置数据库隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL 隔离级别;
# 查询事务隔离级别
select @@transaction_isolation;
事务处理的分离水平对应的数据整合情况:
| 隔离级别 | 非提交读取(脏读) | 不可重复读取 | 幻读 |
|---|---|---|---|
| READ UNCOMMITED | √ | √ | √ |
| READ COMMITED | × | √ | √ |
| REPEATABLE READ | × | × | √ |
| SERIALIZABLE | × | × | × |
建表
CREATE TABLE `student2` (
`id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`passwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` varchar(20) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` date DEFAULT NULL COMMENT '出生日期',
`address` varchar(100) DEFAULT NULL COMMENT '家庭住址',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`grade_id` int(10) DEFAULT '1',
PRIMARY KEY (`id`),
KEY `fk_grade_id` (`grade_id`),
CONSTRAINT `fk_grade_id` FOREIGN KEY (`grade_id`) REFERENCES `grade` (`grade_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
插入数据
insert into student2 (name) values ('张三');
读未提交(READ UNCOMMITTED)
脏读



不可重复读



幻读



读已提交(READ COMMITTED)
无 脏读



不可重复读



幻读



可重复读(REPEATABLE READ)
无 脏读



无 不可重复读



幻读



串行化(SERIALIZABLE)
无 脏读


事务 1 的 update 语句等待 事务 2 执行完毕才能执行(或者等待至指定超时时间后超时)


无 不可重复读




无 幻读















![[图解]SysML和EA建模住宅安全系统-02](https://img-blog.csdnimg.cn/direct/e39683c2350d4b4d92f5424a83977026.png)







