mysql 事务包含事务_mysql事务详解

事务的四大特性ACID如下:

原子性:事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过。

48582220c2b7fd18e7240116d4f972f2.png

30d5513d7fbeea0224adac8b063e2c2f.png

事务的四大隔离级别如下:

一、读未提交。(A事务能够读取到B事务对数据的增删改操作)

该事务级别会出现脏读问题。

二、读已提交。(该事务级别不会出现脏读问题)

只要一个事务A提交了,那么事务A中对数据库表的增删改操作,都会直接反映到事务B上,因此事务B中可以查看到最新的数据。

三、可重复读。(解决了不可重复读,即其他事务的提交,在该事务中看不见,也就是select时,别的事务提交不会影响select语句的结果,但是因为别的事务已经提交了,所以在数据库中是真实存在的,只是在该事务中给屏蔽了一眼,相当于障眼法,如果此时针对别的事物的插入的数据做修改删除操作,那么会起到实际作用的,但是如果新增一条和别的事务插入的记录有违反唯一约束的,那么新增会失败。如果其他事务更新了数据,那么在本事务中不可见,)

测试如下:

1、

(1)开启两个会话A和B,并设置两个会话的数据库隔离级别为可重复读。

d5a68379b92fba546d5be513bfc362eb.png

a859bcb3b8dee974e3b8a18957e4c0ae.png

(2)在两个会话中分别开启两个事务A和事务B,然后分别查询同一张表user,结果如下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值