六、事务-4.并发事务问题

一、脏读

事务A执行3个操作,第1个操作执行select语句,第2个操作执行update语句。

注意:事务没有执行完成的时候,事务是没有提交的。只有事务的3个操作完成之后,事务才会提交。

但事务A中第2个操作,会把表结构中的id为1的数据进行更新。(但事务A没有提交

此时,事务B来查询id为1的数据,会查到事务A第2操作更新之后的数据(但事务A没有提交

事务B读取到事务A没有提交的数据——脏读。

二、不可重复读

事务A执行4步操作,第1步执行select语句,

此时,事务B执行update操作,把id为1的数据更新,并将此次操作提交到数据库,

事务A执行第3步select语句,此时数据跟第1步查到的不一样

三、幻读

事务A执行4步操作,第1步执行select语句,发现id为1没有数据

此时,并发事务B执行insert操作,把id为1的数据插入,并提交数据库.

事务A执行第2步insert操作,此时不能插入成功,会报错,因为id是主键,主键不能重复

事务A执行第3步select操作,还是差不到数据(前提:解决了不可重复读的问题,即读取同一条记录,两次读取的数据是相同的......第1次select操作查不到,第3次select操作也查不到)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZYYzyy1993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值