用于 数据严格要求的场景, 比如转账 , A账号转款给B账号 A账号先减去金额, B账号加上金额, 如果 B账号加上金额时 失败 会自动 将A账号恢复到减去金额之前的状态.
事物的定义:数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列 *** 作,要么完整地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有 *** 作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关 *** 作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。
============
简单说事务就是一组 *** 作的集合,而且这组 *** 作必须全部执行成功否者回滚到所有 *** 作前的状态。
举个例子什么时候用到事务:
例如,在将资金从一个帐户转移到另一个帐户的银行应用中,一个帐户将一定的金额贷记到一个数据库表中,同时另一个帐户将相同的金额借记到另一个数据库表中。由于计算机可能会因停电、网络中断等而出现故障,因此有可能更新了一个表中的行,但没有更新另一个表中的行。如果数据库支持事务,则可以将数据库 *** 作组成一个事务,以防止因这些事件而使数据库出现不一致。如果事务中的某个点发生故障,则所有更新都可以回滚到事务开始之前的状态。如果没有发生故障,则通过以完成状态提交事务来完成更新。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)