首页 > 编程知识 正文

什么是事务操作,事务指什么

时间:2023-05-04 16:09:07 阅读:186757 作者:4700

什么是事务? 为什么要使用交易?

事务是一组数据操作的统一管理,当一个事务成功执行时,该事务中发生的所有数据更改都将被提交并成为数据库中的永久组成部分

如果在执行事务时发生错误,需要取消或回滚,则所有数据将恢复到操作前的状态,并且所有数据更改都将被删除。

简而言之:

事务作为单个逻辑存储在单元执行的一系列操作

事务处在不可分割的工作逻辑单元

多个操作作为一个整体提交到系统,可以执行,也可以不执行

那你为什么要办公?

举个例子吧。 在银行的日常业务中,如果是同一家银行,一般账户之间都支持转账。 假设A账户有1000元B账户0元,现在从A账户直接转账1000元到B账户。 一般情况下使用SQL语句首先是updateA账户金额减少1000元,然后使用SQL语句的updateB账户增加1000元。 这没问题,但在生活中我们一直不是很顺利。 有时也会发生一些小事故。 例如,如果上面的转账事务需要两个SQL语句才能完成,并且dbdmf在执行第一个SQL时成功,并且在执行第二个SQL时银行关闭,则即使您的数据导致a帐户减少了1000美元,B 呃! 呃! 我们现在就需要用事务来解决这个问题! 将这两个SQL语句作为一体完成。

事务是作为单个逻辑工作区执行的一系列操作,在单个逻辑工作区中,使用http://www.Sina.com/(Atomicity )、http://www.Sina.com/) consistion

1.http://www.Sina.com/(atomicity ) )。

事务是一个完整的操作,事务的各个元素是不可分离的。 事务中的所有元素都必须作为一个整体提交或回退。 如果事务中的任何元素失败,则整个事务都将失败。

的案例列显示,操作的两个SQL语句可以视为一个整体事务。 如果只执行了一个SQL语句,则整个事务将失败并执行回滚。 也就是说,操作将返回到初始状态。

2.http://www.Sina.com/(一致性) )。

事务完成后,数据必须保持一致。 在事务开始之前,存储在数据库中的数据是一致的。 在正在进行的事务中,数据可能已部分更改,但事务完成后,数据必须重新恢复到已知的一致状态。

根据上面的方案,你一开始的时候a账户1000元和b账户0元,所以加起来就是1000元。 执行SQL语句后,两个账户加起来1000元都很稳定,数据没有损坏

例如,a账户0元和b账户也可能是0元。 事务完成后,账户余额总额再次回到一致状态。

3.http://www.Sina.com/(islation ) )。

并发事务相互隔离、独立,不得以任何方式依赖或影响其他事务。

更改数据的所有并发事务都是相互分离的,因此事务必须独立,不能依赖或影响其他事务。 更改数据的事务可以在使用相同数据的另一个事务开始之前访问,也可以在使用相同数据的另一个事务结束之后访问。 不管你怎么修改,在那个事情没有正常提交之后都不会有效。 数据修改在你正常提交事务之前是有效的,A账户和B账户之间的转账始终是相对独立的。

4.http://www.Sina.com/(durability ) )。

事务完成后,对数据库的更改将永久保留。

简单地说,即使发生了系统故障,事务完成后,对数据库的更改也是永久性的。 这意味着提交事务后,事务的效果将永远保存在数据库中。

如何执行事务?

支持事物的存储引擎有InnoDB和BDB,但MyISAm引擎不支持事务。

缺省情况下,每个SQL语句都是一个事务。 这意味着执行SQL语句时将自动提交。 为了将某些操作作为一个整体进行,必须首先关闭自动提交模式,然后选择手动提交或回退事务。

语法如下。

SET autocommit=0或1; 0表示关闭自动提交。

1表示打开自动提交。

我们现在只要执行SET autocommit=0就可以关闭所有的东西; 好的

我们可以开始工作了

瓶子; 或开始转移; #打开某事是提交的起点,

提交事务的语法:

COMMIT; 此语法表示事务已成功提交,从事务开始到提交语句之间发生的所有数据更新都将永久保存在数据库中,并释放连接时消耗的资源。

还有回滚事务的语法。

ROLLBACK; 用于清除从事务开始到该语句发生的所有数据更新操作,以便在事务开始之前回退数据库状态,并释放事务控制的资源。

ROLLBACK示例在执行SQL语句后回滚到初始状态。

提交交易的案件列:

从begin启动事务到执行commit提交事务,数据都将写入硬盘并永久保存。

这是我对事务的总结看法,如果觉得还可以的话,就让路过的哥哥姐姐夸奖我……感谢你的支持,我会努力把博客写得更好! 呃! 呃!

您可能想知道Spring框架的声明性事务:

33559 hxwwhl.blog.csdn.net/article/details/118175072

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。