Heim  >  Artikel  >  tägliche Programmierung  >  Was bedeuten MySQL-Transaktions-Commit und Transaktions-Rollback?

Was bedeuten MySQL-Transaktions-Commit und Transaktions-Rollback?

藏色散人
藏色散人Original
2018-10-29 16:53:3621992Durchsuche

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

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

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

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

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

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

一、事务提交(commit)

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

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

Was bedeuten MySQL-Transaktions-Commit und Transaktions-Rollback?

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

Was bedeuten MySQL-Transaktions-Commit und Transaktions-Rollback?

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

Was bedeuten MySQL-Transaktions-Commit und Transaktions-Rollback?

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

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

commit;

Was bedeuten MySQL-Transaktions-Commit und Transaktions-Rollback?

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

Was bedeuten MySQL-Transaktions-Commit und Transaktions-Rollback?

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

二、事务回滚(rollback)

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

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

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

Was bedeuten MySQL-Transaktions-Commit und Transaktions-Rollback?

事务回滚的基本语法:

rollback;

Was bedeuten MySQL-Transaktions-Commit und Transaktions-Rollback?

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

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

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

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

Das obige ist der detaillierte Inhalt vonWas bedeuten MySQL-Transaktions-Commit und Transaktions-Rollback?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn