1. 概念

  • 如果一个包含多个步骤的业务操作事务管理,那么这些操作要么同时成功,要么同时失败;

    2. 基本操作image.png

    3. 事务提交的两种方式

  1. 自动提交, 这也是mysql当中默认的方式;
    1. 一条dml语句(增删改)会自动提交一次事务.
    2. oracle默认是手动提交的方式
  2. 手动提交
    1. 需要先手动开启事务, 再进行提交;
  3. 修改事务的提交方式
    • 查看事务的提交方式
    • image.png
    • 修改提交方式image.png

      4.事务的原理

      事务开启之后, 所有的操作都会临时保存到事务日志中, 事务日志只有在得到 commit 命令才会同步到数据表中,其他任何情况都会清空事务日志(rollback,断开连接) //客户端就是我们操作sql语句的工具image-20201208235237756.png
  • 事务的步骤
    1. 客户端连接数据库服务器,创建连接时创建此用户临时日志文件
    2. 开启事务以后,所有的操作都会先写入到临时日志文件中
    3. 所有的查询操作从表中查询,但会经过日志文件加工后才返回
    4. 如果事务提交则将日志文件中的数据写到表中,否则清空日志文件
  • 回滚点
    • 在某些成功的操作完成之后,后续的操作有可能成功有可能失败,但是不管成功还是失败,前面操作都已经成功,可以在当前成功的位置设置一个回滚点。可以供后续失败操作返回到该位置,而不是返回所有操作,这个点称之为回滚点。
  • 操作语句 | 回滚点的操作语句 | 语句 | | —- | —- | | 设置回滚点 | savepoint 名字 | | 回到回滚点 | rollback 名字 |

  • 实际操作案例image.png