MySQL数据库事务笔记

本贴记录了我看b站上网课关于MySQL数据库事务的一些笔记,以及我对事务的理解


一、事务的基本介绍

1、事务的基本理解

        我对事务的理解是,事务就像游戏存档,开启一个事务就像开启了一段游戏存档。在事务开启以后,还可以设置保存点,可以类比游戏中的一个存档,设置保存点后(在游戏中对游戏进行存档),在设置保存点之前的所有对数据库的增删改都会被保存起来。如果像回到以前可以打开之前的存档。

        以下是b站韩顺平老师的ppt介绍

2、事务的保存点

        开启一个事务后,如果数据库中的表a是空的,往数据库中添加十条信息后,设置一个保存点flag1。此时数据库中有十条数据,再往数据库中添加十条数据,此时的数据库就有二十条数据了。然后还可以再设置一个保存点flag2.

3、事务的回退

        如果在设置好保存点flag2后,发现第二次添加的是条数据是错误的,不想要了,可以选择回退到保存点flag1。回退之后,数据库里的数据就返回到了第一次设置保存点flag1时的状态(我理解成可以有反悔的机会)。

        注意回退到保存点flag1之后,无法再回到保存点flag2。

4、事务的提交

        还有一个提交事物语句(commit),执行此语句后,开启事务后所有的操作生效,无法再选择回退事务。

5、事务的锁

        当开启一个事务时,为了保证数据的完整性和安全性,MySQL会自动为表上锁,防止其他用户在一个事务开始后修改表的数据,或对其他用户的操作造成误读(类似于多线程中锁的功能)。

二、事务的基本操作:

        1、开启一个事务

        语句为:start transaction;

        2、设置保存点

        语句为:savepoint flag1;保存点名为flag1。

        3、回退事务

        语句为:rollback to flag1;回退到flag1。

        4、回退全部事务

        语句为:rollback;可以回退到开始事务的状态;

        5、提交事务

        语句为:commit;提交事务所有事物生效,不能回退;

三、演示:

开始一个事务:

查询student表:

修改id为1的数学成绩:

设置保存点flag1:

 修改id为2的数学成绩:

 

 设置保存点flag2:

 

回退到保存点flag1:

回退到开始事务的时候:

提交事务:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值