注意:MySQL数据库引擎innodb下才支持事务,MYISAM引擎不支持事务

含义:ACID特性(原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability))

  • 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

  • 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

  • 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。

  • 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

含义解读 :事务经常用来处理成批的处理SQL语句,试想一下,如果你一条语句一条语句的执行,你的效率会很低下,批处理操作可以加快进度。

事务控制语句 :

  • BEGIN或START TRANSACTION;显式地开启一个事务;

  • COMMIT;也可以使用COMMIT WORK,不过二者是等价的。COMMIT会提交事务,并使已对数据库进行的所有修改称为永久性的;

  • ROLLBACK;有可以使用ROLLBACK WORK,不过二者是等价的。回滚会结束用户的事务,并撤销正在进行的所有未提交的修改;

  • SAVEPOINT identifier;SAVEPOINT允许在事务中创建一个保存点,一个事务中可以有多个SAVEPOINT;

  • RELEASE SAVEPOINT identifier;删除一个事务的保存点,当没有指定的保存点时,执行该语句会抛出一个异常;

  • ROLLBACK TO identifier;把事务回滚到标记点;

  • SET TRANSACTION;用来设置事务的隔离级别。InnoDB存储引擎提供事务的隔离级别有READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE。

语法 :

用 BEGIN, ROLLBACK, COMMIT来实现

  • BEGIN 开始一个事务
  • ROLLBACK 事务回滚
  • COMMIT 事务确认

举例 :
begin ; # 开始事务

insert into runoob_transaction_test value(5);

insert into runoob_transaction_test value(6);

rollback;

insert into runoob_transaction_test value(7);

commit;

返回结果只有

+------+| id

|+------+| 7

测试适用点:在测试过程中,经常会遇到对测试造成的垃圾数据没有及时清理,导致影响测试的情况,避免数据错误带来的困扰,可以在产生数据的时候及时进行数据清理,通过事务可以全量清理。

事务和事件的区别:事件强调周期性(有明确周期限制,到点就执行),而事务则是人为手动触发的一系列SQL语句集;

事务用的比较多的DML有:insert   update delete

【mysql学习心得——事务】相关推荐

  1. 我的MYSQL学习心得(十六) 优化

    原文:我的MYSQL学习心得(十六) 优化 我的MYSQL学习心得(十六) 优化 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看 ...

  2. 我的MYSQL学习心得(4) : 数据类型

    我的MYSQL学习心得(1) :简单语法 我的MYSQL学习心得(2) :数据类型宽度 我的MYSQL学习心得(3) : 查看字段长度 MYSQL里的BLOB数据类型 BLOB是一个二进制大对象,用来 ...

  3. 我的MYSQL学习心得(二)

    我的MYSQL学习心得(二) 原文:我的MYSQL学习心得(二) 我的MYSQL学习心得(二) 我的MYSQL学习心得(一) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL ...

  4. 我的MYSQL学习心得(一)

    我的MYSQL学习心得(一) 原文:我的MYSQL学习心得(一) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL ...

  5. 查看我的mysql_我的MYSQL学习心得(七) 查询

    在这个<我的MYSQL学习心得>系列里面,我一直都把MYSQL跟SQLSERVER进行比较,相互进行比较是学习一样东西比较好的方法 比较出大家的异同点,从而加深记忆 这一篇<我的MY ...

  6. 我的MYSQL学习心得(十一) 视图

    我的MYSQL学习心得(十一) 视图 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  7. 我的MYSQL学习心得(十三) 权限管理

    这一篇<我的MYSQL学习心得(十三)>将会讲解MYSQL的用户管理 在mysql数据库中,有mysql_install_db脚本初始化权限表,存储权限的表有: 1.user表 2.db表 ...

  8. mysql查询心得_我的MYSQL学习心得(七) 查询

    在这个<我的MYSQL学习心得>系列里面,我一直都把MYSQL跟SQLSERVER进行比较,相互进行比较是学习一样东西比较好的方法 比较出大家的异同点,从而加深记忆 这一篇<我的MY ...

  9. MYSQL学习心得 总结

    http://www.cnblogs.com/lyhabc/p/3691555.html 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三 ...

最新文章

  1. linux i3如何运行qq,linux qq (CPU :i3)怎么安装?
  2. PyQt5 图形界面 - Qt Designer独立安装包,仅需30M!python图像化界面绘制工具
  3. 【ECSHOP】格式化商品价格
  4. layui如何获取父节点的父节点_layui框架中layer父子页面交互的方法分析
  5. 【渝粤题库】陕西师范大学210032学前心理学 作业(专升本)
  6. 高斯混合模型聚类_GMM: Gaussian Mixed Model(高斯混合模型)
  7. db2 mysql sql server_连接数据库的方法(Oracle DB2 SQL Server MySQL...)
  8. Spring Cloud —— 消息队列与 RocketMQ
  9. Siege linux压力测评
  10. rocketmq概念
  11. 电脑内录软件如何录制电脑系统在线声音?
  12. Himall商城普通帮助类(二)
  13. 联想笔记本linux无线网卡驱动下载,联想无线网卡驱动下载-联想 X1 Carbon网卡驱动下载v18.40.0 官方最新版-西西软件下载...
  14. 对话海星区块创始团队,打造区块链媒体明日之星
  15. 智能科学与技术——介绍概要
  16. Quartus II 使用详解
  17. 机器学习在信用评分卡中的应用
  18. [乐意黎]Nginx 重写wordpress路径于二级子目录方法
  19. 北京国际学校IB考试均分稳得一匹,IB考试结果揭秘
  20. 课外时间学点历史知识~

热门文章

  1. 关于读论文和标注小技巧(不断更新)
  2. 单差、双差和三差测量方程
  3. java基于springboot社区养老服务管理系统附源码
  4. 固高科技在创业板提交注册:业绩开始下滑,实控人均为“学院派”
  5. 实现strcpy函数
  6. 10. Fabric2.2 区块链农产品溯源系统 - 创建并加入通道
  7. 有语音的计算机玩法,用了6年的华为,才知道语音助手有这么多的玩法
  8. opencv-python 实时获取摄像头数据并实时显示。
  9. 路由器登陆wlan网络连接服务器无响应,无线路由器服务器无响应
  10. 将android转换成ios,王者荣耀安卓可以转到苹果吗 ios怎么转安卓系统