MySQL第十三次作业-事务管理

1、创建一个名为chapter06的数据库
在这里插入图片描述

2、使用chapter06数据库
在这里插入图片描述

3、创建一个名为account的表
在这里插入图片描述

create table account(
-> id int primary key auto_increment,
-> name varchar(40),
-> money float
-> );
在这里插入图片描述

4、往表中插入数据
insert into account(name,money) values
-> (‘a’,1000),
-> (‘b’,1000);
在这里插入图片描述

5、查询表中数据
在这里插入图片描述

在这里插入图片描述

6、开启一个事务然后通过update语句将a账户的100元钱转给b用户,最后提交事务。
在这里插入图片描述
start transaction;
update account set money=money-100 where name = ‘a’;
update account set money=money+100 where name = ‘b’;
commit;
在这里插入图片描述

7、查询表中余额
select * from account;
在这里插入图片描述

8、开启一个事务然后通过update语句将b账户的100元钱转给a用户
在这里插入图片描述

start transaction;
update account set money=money+100 where name = ‘a’;
update account set money=money-100 where name = ‘b’;

在这里插入图片描述

9、再查询表中余额
select * from account;
在这里插入图片描述

10、先退出MySQL数据库,再登录MySQL数据库,然后再使用chapter06数据库,在查询余额
在这里插入图片描述

11、开启一个事务然后通过update语句将b账户的100元钱转给a用户,然后使用commit语句来提交事务。
在这里插入图片描述
start transaction;
update account set money = money +100 where name =‘a’;
update account set money = money -100 where name =‘b’;
commit;
在这里插入图片描述

12、重新登录数据库然后再查询余额
在这里插入图片描述在这里插入图片描述

13、开启一个事务,通过update语句将a账户的100元钱转给b账户。
start transaction;
update account set money = money -100 where name =‘a’;
update account set money = money +100 where name =‘b’;
在这里插入图片描述

14、然后查询A、B账户的金额;
select * from account;
在这里插入图片描述

15、从查询结果可以看出,a账户的100元钱转给b账户了,但是事务还没有提交,我们还可以执行事务回滚,操作如下:
在这里插入图片描述
rollback;
在这里插入图片描述

16、查询A、B账户的余额
在这里插入图片描述

select * from account;
在这里插入图片描述

17、将b账户的隔离级别改为read uncommitted;
在这里插入图片描述

set session transaction isolation level read uncommitted;
在这里插入图片描述

18、设置b账户事务隔离级别:
在这里插入图片描述

select @@transaction_isolation;
在这里插入图片描述

19、演示脏读:
在这里插入图片描述
start transaction;
select * from account;
在这里插入图片描述

20、在a账户中开启一个事务,并在当前窗口中执行转账功能,但不提交事务。
在这里插入图片描述
start transaction;
update account set money = money - 100 where name =‘a’;
update account set money = money + 100 where name =‘b’;

在这里插入图片描述

21、然后再查询余额信息
select * from account;
在这里插入图片描述

22、将上一步开启的事务进行回滚
在这里插入图片描述
rollback;
select * from account;
在这里插入图片描述

23、设置b账户中事务的隔离级别
在这里插入图片描述
set session transaction isolation level read committed;

在这里插入图片描述

24、验证是否出现脏读:
在这里插入图片描述
start transaction;
select * from account;
在这里插入图片描述

25、在a账户中开启一个事务,并在该事务中实现转账功能
在这里插入图片描述
start transaction;
update account set money = money -100 where name = ‘a’;
update account set money = money +100 where name = ‘b’;

在这里插入图片描述

26、再次查询各账户的余额信息。
在这里插入图片描述
select * from account;
在这里插入图片描述

27、演示不可重复读
在这里插入图片描述
start transaction;
select * from account;
在这里插入图片描述

28、在a账户中不用开启事务,直接使用update语句执行更新操作即可
在这里插入图片描述
update account set money = money -100 where name = ‘a’;
在这里插入图片描述

29、查询a账户的余额
在这里插入图片描述
select * from account;
在这里插入图片描述

30、当a账户的更新语句完成后,查询b账户的余额
在这里插入图片描述
select * from account;
在这里插入图片描述

31、设置b账户中事务的隔离级别
在这里插入图片描述
set session transaction isolation level repeatable read;
在这里插入图片描述

32、验证是否出现不可重复读
在这里插入图片描述
start transaction;
select * from account;
在这里插入图片描述

33、幻读
在这里插入图片描述
set session transaction isolation level read committed;
在这里插入图片描述

34、演示幻读
在这里插入图片描述
start transaction;
select * from account;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
insert into account(name,money) values(‘c’,1000);
在这里插入图片描述

在这里插入图片描述
select * from account;
在这里插入图片描述

在这里插入图片描述
set session transaction isolation level repeatable read;
在这里插入图片描述

35、验证是否出现幻读
在这里插入图片描述
start transaction;
select * from account;
在这里插入图片描述
在这里插入图片描述
select * from account;
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
select * from account;
在这里插入图片描述

36、可串行化
在这里插入图片描述
在这里插入图片描述
start transaction;
select * from account;
在这里插入图片描述

37、演示可串行化
在这里插入图片描述
start transaction;
select * from account;
在这里插入图片描述

在这里插入图片描述
start transaction;
在这里插入图片描述

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值