mysql入门到精通007-基础篇-事务

1、事务简介 

事务是一组操作的集合,它是一个不可分割的事物单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败

2、操作演示

开始张三和李四账户表中都是2000元,现在张三给李四转1000元,并且故意制作一个异常

结果:

问题:张三的钱减少了,但是李四的钱没有增加

解决:

转账操作控制在一个事务中。

设置事务的一种方式

2.1 查看事务的方式
select @@autocommit; // 1代表自动提交,0代表手动提交
set @@autocommit = 0; // 设置事务的提交方式为手动提交

2.2 提交事务
commit;
 2.3 回滚事务
rollback;
2.4 完整代码:

设置事务的另外一种方式(不手动) 

2.5 开启事务
start transaction 或者 begin ;
2.6 提交事务
commit;
2.7 回滚事务 
rollback;

3、四大特性ACID

4、并发事务问题 

4.1 概念

a事务和b事务同时操作同一个数据库或者表的时候,所引发的问题

4.2 常见的并发事务问题

4.2.1 脏读

a事务还没有提交,b事务就读取了。

4.2.2 不可重复读

事务a1进行读取操作,读取结果value1

此时,事务b2进行commit操作,更改值

事务a3又进行了读取操作,读取结果value2

结果:value1 不等于 value2

4.2.3 幻读

一个事务a,第一次查询id=3没有数据,然后尝试进行insert数据,但是报错了(因为事务b进行了insert操作影响了事务a的读取)

总结:一次只允许一个事务提交成功。

5、并发事务演示及隔离级别(解决并发问题)

5.1 级别分类

并发和数据安全要综合考虑。read uncommited数据安全性最高。

5.2 设置隔离级别

 

6、事务小结

7、基础篇小结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值