微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mysql事务提交及事务回滚是什么意思

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

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

mysql数据表中事务是什么意思

怎么开启Mysql数据表中的事务

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

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

一、事务提交(commit)

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

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

bb4a5756c24b5742748150ae02af41a.png

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

3723480a8649b4ba5b7c9722545b7a4.png

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

9f366c8cd6ce0529ac0088fa8af3f20.png

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

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

commit;

5181787051f1bc6353bcf694173ee61.png

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

a947e282f21404b8c9fac6299d2f7a2.png

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

二、事务回滚(rollback)

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

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

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

ae42ca14c417f54b4ede34bd97f3aa0.png

事务回滚的基本语法:

rollback;

fa3198ba1780693db2c3f101fcb8437.png

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

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

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

想要了解更多MysqL知识,可以关注编程之家mysql视频教程,欢迎大家参考学习!

以上就是MysqL事务提交及事务回滚是什么意思的详细内容,更多请关注编程之家其它相关文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐