数据库 MySQL 四种事务隔离级别代码演示 -- 读未提交;读已提交;可重复读;串行化

前提

# 设置数据库隔离级别
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 执行完毕才能执行(或者等待至指定超时时间后超时)

在这里插入图片描述
在这里插入图片描述

无 不可重复读

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

无 幻读

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 16
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值