回滚 rollback

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回滚 rollback相关的知识,希望对你有一定的参考价值。

  

  为了保证在应用程序、数据库或系统出现错误后,数据库能够被还原,以保证数据库的完整性,所以需要进行回滚。

  回滚(rollback)就是在事务提交之前将数据库数据恢复到事务修改之前数据库数据状态。

 

  回滚执行相反的操作,可以撤销错误的操作,从而保证数据的完整性。

  例如,用户A给用户B转账,在数据库中就需要给AB的账户信息进行修改(update)操作,而这两条sql语句必须都执行或者都不执行。  例如先执行用户B的修改(update)语句,使用户B的账户金额增加了1000,然后执行用户Aupdate语句,使用户A的账户金额减少了1000。  如果用户A的账户金额大于1000,则交易顺利进行,不存在任何问题,但是当用户A的账户金额小于1000时,由于转账金额不允许大于账户金额,第二条sql语句语句就无法正确执行,此时,数据库的状态必须回到没有执行Bupdate语句之前,需要进行回滚操作,回滚就是执行一遍相反的操作,此时再执行Bupdate金额减1000

  需要注意的回滚与撤销的区别。  回滚是指将数据库的状态恢复到执行事务之前的状态,其中可能会使用UNDO日志进行回滚。   撤销是一种记录日志的方式,并不是主要服务于事务回滚,而是主要用于系统从故障中恢复。  例如,系统突然断电,系统要根据UNDO日志对未完成的事务进行处理,保证数据库的状态为执行这些事务之前的状态。

 

 

以上是关于回滚 rollback的主要内容,如果未能解决你的问题,请参考以下文章

spring自己抛出异常,居然不能回滚

各位大侠,请问git怎么回滚版本

spring事务会导致全局变量回滚么

代码回滚后需要重新登录app吗

oracle断网后事务无法回滚

svn上想回滚代码怎么办