028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Mysql事务是什么意思

本篇内容主要讲解“MySQL事务是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql事务是什么意思”吧!

目前成都创新互联已为超过千家的企业提供了网站建设、域名、网站空间网站运营、企业网站设计、新宁网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

上一篇着重谈到了MySQL锁的概念,里面谈到了事务的概念,其实大部分开发者对于事务肯定不陌生,事务的概念其实就是一组SQL语句组成一个执行单元,如果单元中的某个SQL语句执行出现异常,则需要将整个事务进行回滚到未修改的状态。只有单元中全部SQL语句都成功执行,才会提交数据代表事务执行成功。而Mysql其实前几篇我们都已经知道是支持多种存储引擎的,其实正是因为MyISAM引擎不支持事务被InnoDB取代的原因。所以本篇文章主要是针对InnoDB引擎详细了解下事务这个概念。

事务特性

隔离性的四种隔离级别

InnoDB引擎支持的4种事务隔离级别分别是:读未提交、读已提交、可重复读、串行读。

幻读

事务在插入一条已经经过检查不存在的记录,但是插入结果是数据已经存在,之前的检查操作如同幻影。Mysql默认采用可重复读级别,所以只可能出现幻读的情况。

设置事务隔离级别

可以在my.ini文件中[mysqld]下配置transaction-isolation属性,隔离性的四个值为:READ-UNCOMMITTED、READ-COMMITIED、REPEATABLE-READ、SERIALIZABLE,分别对应读未提交、读已提交、可重复读、串行读四种隔离级别。

事务分类

事务一般分为两种:隐式事务和显示事务。在Mysql中,事务默认是自动提交的,所以说每个DML语句实际上就是一次事务的过程。 隐式事务:没有开启和结束的标志,默认执行完SQL语句就自动提交,比如我们经常使用的INSERT、UPDATE、DELETE语句就属于隐式事务。 显示事务:需要显示的开启关闭,然后执行一系列操作,最后如果全部操作都成功执行,则提交事务释放连接,如果操作有异常,则回滚事务中的所有操作。

事务使用步骤开启事务:关闭自动提交,然后开启事务。 事务操作:一系列DML语句执行。 事务结束:根据事务操作成功与否选择提交事务或者回滚事务操作。

接下来我们简单的使用事务实现用户A向用户B转账的操作:

创建用户表并插入两条用户数据:

Mysql事务是什么意思

配置数据库连接信息:

Mysql事务是什么意思

接下来从连接池中取出一个数据库连接并进行数据库连接:

Mysql事务是什么意思

数据库连接成功,则使用connection对象开启事务: Mysql事务是什么意思

然后查询转账账号与待转账账号是否存在,并进行转账等一系列操作,这里由于魔鬼回调的原因我这里使用async库变成链式调用:

Mysql事务是什么意思

最后根据事务操作的成功或失败进行事务提交或者事务回滚,并且释放数据库连接:

Mysql事务是什么意思

然后可以测试转账成功的情况可以发现转账操作成功了

Mysql事务是什么意思

再次测试转账失败的操作可以发现扣除A积分和增加B积分的操作全部被回滚了,所以A和B的积分余额都没有发生改变

Mysql事务是什么意思 

到此,相信大家对“Mysql事务是什么意思”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


当前标题:Mysql事务是什么意思
网站地址:http://www.tsicrk.com/article/igjjge.html

其他资讯

让你的专属顾问为你服务

1.8364s