MySQL事务实现

mySQL事务实现

设置默认引擎:
事务实现, 首先需要你的mysql支持innodb引擎,查看你的mysql支持的引擎的语法为: show engines \G
我使用show engines命令 \G一共显示有9.row行


可看到 Support:DEFAULT,看到这个代表mySQL的数据库引擎默认为 innodb引擎了,那样就可以使用事务了

更改表的引擎:
如果不是默认为 innodb引擎 ,那么 在sql命令输入框输入修改数据表存储引擎的命令 :
    ALTER TABLE  tablename TYPE = INNODB 

注:tablename是你数据库中使用事务的表名。如果你的数据库引擎默认为 innodb引擎了,那么就不用操作这步了,否则会提示错误




以下是我在mySQL5.6中实现的事务图全过程:
说明:我的数据库test中有一个testTable表,testTable表中只有一个int类型的a1字段




1、选择数据库 use test,查询testTable内容



2、开启事务



3、事务执行语句,更改testTable中a1字段为5 


4、查询事务执行语句是否已经执行



个人理解:
这里需要注意,现在我查询了testTable的内容,可见,a1字段已经变为5。我现在还还有使用commit提交,但查询出来的结果已经变为5了,因为我现在还是在事务里面,即还在start transaction 和commit的过程中。在事务里面的SQL语句,在还没有使用commit提交,都是相当于虚拟执行的,这也是为什么事务开启了后,一旦遇到异常,它就会回滚,还原为未执行SQL语句之前的状态的原因。
       为了验证事务到底有没有真实提交,我们应该还需要在其它mysql管理工具来查询表的内容。我这里使用了mySQL管理工具的SQLyog。这里可以看到我小的红圈中也是用了同样的语句查询testTable,但结果依然显示为1,也就是和我们没有开启事务时查询的内容一样,那么就证明了我们在使用update testTable set a1=5 这条语句还没有提交




5、提交事务



6、查询结果


可以看到,只有在commit提交后,事务中的语句才会执行








  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值