mySql事务处理TPL的小总结

此篇文章是对MySql中的事务处理的一个小总结

一、 何为事务

  • 事务:也称工作单元,是由一个或多个SQL语句所组成的操作序列,这些SQL语句作为一个完整的工作单元,要么全部执行成功,要么全部执行失败。在数据库中,通过事务来保证数据的一致性。
  • 事务的回滚:如果事务中的任何一个sql执行失败,ROLLBACK可以进行事务的回滚,将数据恢复到事务执行之前的状态,保证数据的一致性。
  • 前提:mysql存储引擎InnoDB

过事务的使用,能防止数据库中出现数据不一致现象。 如两个银行账户进行转账,涉及到两条更新操作,这两条更新操作只允许全部成功或失败,否则数据会出现不一致的现象。

二、事务的特征:ACID

事务特征可用四个字母的缩写表示:即ACID

  • 原子性 ATOMICITY
    事务的sql语句不可分割,要么全部成功,要么全部失败
  • 一致性 CONSISTENCY
    不管事务执行成功还是失败,数据总是保持一致性的。
  • 隔离性 ISOLATION
    事务与事务之间是相互隔离的,不相互影响
  • 持久性 DURABLITY
    事务一旦提交成功,对于数据的改变是持久性的,不能再进行事务的回滚了。

三、事务的组成

数据库中,事务由一组相关的DML或SELECT语句,加上一 个TPL语句(COMMIT、ROLLBACK)或一个DDL语句(CREATE、 ALTER、DROP、TRUNCATE等)或一个DCL(GRANT、REVOKE) 语句。
在这里插入图片描述

四、事务处理语言——TPL (TRANSACTION PROCESS LANGUAGE )

  • 事务处理语言:Transaction Process Language ,简称TPL, 主要用来对组成事务的DML语句的操作结果进行确认或取消。 确认也就是使DML操作生效,使用提交(COMMIT)命令实现; 取消也就是使DML操作失效,使用回滚(ROLLBACK)命令实现。

事务的自动提交模式

  1. mysql中的事务是自动提交的,即每一个sql语句后默认加COMMIT语句
  2. 查看mysql的事务自动提交模式:SHOW VARIABLES LIKE 'autocommit’
  3. 修改mysql的自动提交模式
    SET AUTOCOMMIT=1 表示开启
    SET AUTOCOMMIT=0 表示关闭

事务处理

  • MySQL的事务处理主要有两种方法
    1. 用begin,rollback,commit来实现:
      begin开始一个事务
      rollback事务回滚
      commit 事务提交

    2. 直接用set来改变MySQL的自动提交模式
      MySQL默认是自动提交的,也就是你提交一个sql,就直接执行!可以通过set autocommit = 0 禁止自动提交set autocommit = 1 开启自动提交来实现事务的处理。

    但要注意当用set autocommit = 0 的时候,以后所有的sql都将作为事务处理,直到用commit确认或 rollback结束,注意当结束这个事务的同时也开启了新的事务!按第一种方法只将当前的做为一个事务!

事务处理隐式结束

  • 隐式提交:当下列任意一种情况发生时,会发生隐式提交 •
    1. 执行一个DDL(CREATE、ALTER、DROP、TRUNCATE、RENAME) 语句;
    2. 执行一个DCL(GRANT、REVOKE)语句;
  • 隐式回滚:当下列任意一种情况发生时,会发生隐式回滚
    1. 客户端强行退出
    2. 客户端连接到服务器端异常中断
    3. 系统崩溃

设置保存点

如果在一个事务内,想要回滚到指 定位置,不是回滚到事务的起始点,可以通过保存点(SAVEPOINT)来实现。

  • SAVEPOINT savepointname;————定义一个保存点语句;
  • ROLLBACK TO savepointname;——-——回滚到指定保存点

注意:如上两条语句不结束事务的执行。

看官,如果觉得这篇文章还不错,点个赞加个关注再走呗 ^ - ^
MySql系列文章:

  1. MySql数据库基本操作(一)
  2. MySql数据库管理操作基本语句小结
  3. MySql中建表时约束条件的总结
  4. MySql中对数据类型的总结
  5. mySql事务处理TPL的小总结
  6. MySQL语句——数据查询语言DQL详解
  7. MySql数据库中SQL语句的全面总结
  8. MySql中最基本最常用的函数小结

猜你喜欢

转载自blog.csdn.net/qq_45768060/article/details/108594898
今日推荐