Rollback是回退的意思,在计算机领域,用来指改变数据库某个瞬间以前的状态,就是撤销上一次操作。在Oracle数据库中,一般意义上的回滚操作其实就是指数据库恢复到以前某个时刻状态,它不仅可以用来恢复某条指令或者事务带来的脏数据,而且可以用来实行不同的测试和诊断。
要做一次回滚操作,一般来说需要有两个步骤,即保存点设定和回滚点设定。首先,需要在要回滚的数据库上设置保存点,这个操作一般用事务控制语句”SAVEPOINT savepoint_name” 来实现。其次,要设置回滚点,需要使用回滚指令 ”ROLLBACK TO savepoint_name” 来实现。即先用SAVEPOINT先保存一个点,然后用ROLLBACK TO回滚到之前的状态,这样就实现了一次回滚操作。
从代码实现上来看,(在Oracle RDBMS中执行)全局事务回滚(global transaction rollbacks)操作大致如下:
示例代码
BEGIN
distimon_chane; // Begin the transaction
UPDATE
SET =;
SAVEPOINT rollback_point; // Setting the savepoint
UPDATE
SET =;
ROLLBACK TO rollback_point; // Rolling back to savepoint
COMMIT; // Committing the changes
END;
以上代码执行完毕后,Table的状态并不会改变,因为整个事务都被回滚到第一个SAVEPOINT处,这样就可以在不影响其他事务的情况下保证数据库恢复到正确的状态。
总结一下, Oracle数据库中的回滚操作确实可以帮助系统获得一定程度的灵活性,但是在实现这一点时,用户也应该小心地使用回滚操作,以免更改了已经有效操作,从而影响系统的正常运行。此外,在实施回滚操作时也一定要注意代码的书写格式,以免犯错误,导致系统不能正常运作。
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。