介绍
这篇文章主要为大家展示了如何使用MySQL事务,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
MySQL事务是一个或者多个的数据库操作,要么全部执行成功,要么全部失败回滚。事务是通过事务日志来实现的,事务日志包括:重做日志和undo日志。
引用>事务的状态
活动的(积极的)
事务对应的数据库操作正在执行过程中时,我们就说该事务处在活动的状态。引用>部分提交的(部分提交)
当事务中的最后一个操作执行完成,但由于操作都在内存中执行,所造成的影响并没有刷新到磁盘时,我们就说该事务处在部分提交的状态。引用>失败的(失败)
当事务处在活动的或者部分提交的状态时,可能遇到了某些错误(数据库自身的错,误操作系统错误或者直接断电等)而无法继续执行,或者人为的停止当前事务的执行,我们就说该事务处在失败的状态。引用>中止的(流产)
如果事务执行了半截而变为失败的状态,撤销失败事务对当前数据库造成的影响,我们把这个撤销的过程称之为回滚。当回滚操作执行完毕时,也就是数据库恢复到了执行事务之前的状态,我们就说该事务处在了中止的状态。
引用>提交的(承诺)
当一个处在部分提交的状态的事务将修改过的数据都同步到磁盘上之后,我们就可以说该事务处在了提交的状态。引用>
从图中大家也可以看出了,只有当事务处于提交的或者中止的状态时,一个事务的生命周期才算是结束了。对于已经提交的事务来说,该事务对数据库所做的修改将永久生效,对于处于中止状态的事务,该事务对数据库所做的所有修改都会被回滚到没执行该事务之前的状态。引用>事务的作用
事务主要是为了保证复杂数据库操作数据的一致性,尤其是在并发访问数据时。
MySQL事务主要用于处理操作量大,复杂度高的数据。引用>事务的特点
原子性(原子性,又称不可分割性)
事务的数据操作,要么全部执行成功,要么全部失败回滚到执行之前的状态,就像这个事务从来没有执行过一样。引用>隔离性(隔离,又称独立性)
多个事务之间是相互隔离,互不影响的。数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。引用><强>四种隔离状态:强>
引用>
1。读未提交(未提交读)
2。读提交(承诺)
3。可重复读(可重复读)
4。串行化(序列化)一致性(一致性)
在事务操作之前和之后,数据都是保持一个相同的状态,数据库的完整性没有被破坏。
原子性和隔离性,对一致性有着至关重要的影响。引用>持久性(耐久性)
当事务操作完成后,数据会被刷新到磁盘永久保存,即便是系统故障也不会丢失。引用>事务的语法
数据
#创建数据表: 创建表帐户( →auto_increment int id (10), →名字varchar (30), →平衡int (10), →主键(id)); #插入数据: 插入账户(名称、平衡)值(& # 39;老王媳妇& # 39;,100),(& # 39;老王& # 39;(10);mysql>select * from账户; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | | | id名称|平衡 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + | 1 |老王媳妇| 100 | | 2 |老王10 | | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +老王媳妇有100元存在自己的微信账户上了,专门给老王每个月发零花钱用的,表现好给的多,老王也有自己的小金库,目前已经攒到了10元零花钱了,哈哈哈。引用>
开始事务启动方式1 引用>mysql>开始; 查询好,0行影响(0.00秒) mysql>事务操作SQL……开始事务[修饰符)
修饰符: 1. 阅读> mysql>事务开始阅读> #如设置阅读> mysql>提交; 查询好,0行影响(0.00秒)
滚事务执行回滚,回到事务操作之前的状态。引用>mysql>回滚; 查询好,0行影响(0.00秒)如何使用MySQL事务