mysql提交事务回滚吗_Mysql事务提交及事务回滚是什么意思

本篇文章主要给大家介绍mysql事务提交及事务回滚的相关知识。

事务可以说是一段sql 语句的批处理,但是这个批处理是一个atom(原子) ,不可分割,要么都提交执行,要么回滚(rollback)都不执行。关于事务的详细定义介绍,我们在之前的文章中已经给大家介绍过了,需要的朋友可以先参考了解。

那么这里的事务提交和事务回滚是什么意思?又怎么实现?

下面我们依然结合一些简单的例子给大家进行详细说明。

一、事务提交(commit)

成功的结束,将所有的DML(insert、update、delete)语句操作历史记录和底层硬盘数据来一次同步。

比如,现在有money这张表,其中有两条数据,id为1和id为2 的金额分别是7000和8000。

6fb5ffd9f2f7f8372609983457a7022e.png

然后我们通过“start transaction”语句开启事务。

231b878a0a6d0cad478a607b07ec7408.png

再对表中数据进行一些更新操作,如下图中所示,我们分别对表中id为1和id为2的人增加金额5000。

e3851be4e4776a96e95c9497321454ac.png

那么我们在之前的文章【怎么开启Mysql数据表中手动事务】中,有说到事务开启后,再更新数据的话,数据库中的真实数据是不会有变化的,只是将记录更新到事务日志中。如果想要数据同步更新到数据库中,我们就需要进行事务提交操作。

这里就需要大家掌握事务提交的语法:commit;

438a2c3909298d923e806d4f1afabcd3.png

事务提交后,我们再通过Navicat检查下数据表中的数据是否发生了变化。

22743a183fd8210f52213546d98cb400.png

如图事务提执行交即确认后,才能对真实的表数据进行改变。

二、事务回滚(rollback)

失败的结束,将所有的DML语句操作历史记录全部清空。

在进行上面的事务提交操作后,money表中的数据已经变为12000和13000了。

这里我们再重新开启事务,并再进行一系列更新数据操作。

a9e54a32d45079e57df2c19b82ae2882.png

事务回滚的基本语法:rollback;

a360d2f7cd6eccf768ec32997b15c25a.png

那么从图中我们可以发现,当我们进行事务回滚操作后,在开启事务之后的一系列操作都会被清空,也就是说进行事务回滚后,数据库中数据依然不会发生任何变化。

注意:如果事务中所有sql语句执行正确则需要自己手动提交commit;否则有任何一条执行错误,需要自己提交一条rollback,这时会回滚所有操作,而不是commit会给你自动判断和回滚。

本篇文章就是关于mysql数据表手动事务提交和事务回滚的相关知识介绍,通俗易懂,希望对需要的朋友有所帮助!

想要了解更多mysql知识,可以关注PHP中文网mysql视频教程,欢迎大家参考学习!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中的事务是一组原子操作,这些操作要么全部完成,要么全部不完成。如果事务中的任何一个操作失败,则整个事务将被回滚到最初状态。 事务提交回滚MySQL中非常重要的操作,可以通过以下方式进行实现: 1. 事务提交:当事务中的一组操作全部成功执行后,可以通过执行COMMIT语句来提交事务,使得这些操作的结果永久保存在数据库中。 2. 事务回滚:当事务中的任何一个操作失败或者发生错误时,可以通过执行ROLLBACK语句来回滚事务,使得数据库恢复到事务开始之前的状态。 在MySQL中,可以通过以下方式进行事务操作: 1. 使用START TRANSACTION语句来开始一个新的事务。 2. 在事务中执行多个操作,例如INSERT、UPDATE、DELETE等。 3. 如果事务中的所有操作都成功执行,使用COMMIT语句来提交事务。 4. 如果事务中的任何一个操作失败或者发生错误,使用ROLLBACK语句来回滚事务。 例如,以下是一个MySQL事务的示例: ``` START TRANSACTION; INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com'); UPDATE accounts SET balance = balance - 100 WHERE user_id = 1; COMMIT; ``` 在上面的示例中,我们首先使用START TRANSACTION语句开始一个新的事务,然后在事务中执行了两个操作:向users表中插入一条新记录,以及更新accounts表中用户1的余额。最后,如果所有操作都成功执行,我们使用COMMIT语句提交事务。如果在执行这些操作的过程中发生了错误,我们可以使用ROLLBACK语句回滚事务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值