oracle数据库中的rollback和savepoint

rollback也是结束一个事务的一种方式,commit是表示提交事务,而rollback则表示撤销事务。一般我们会在下面两种情况下经常使用到rollback:

(1)错误的删除或更改了数据,使用rollback来恢复原始数据;

(2)如果触发了 异常或者条件不满足,则使用rollback来使得数据恢复到初始状态,以便于再次执行。

rollback的语法如下:

ROLLBACK [WORK] [TO [SAVEPOINT] savepoint_name];

与commit一样,可选关键字work只是为了增强程序可读性,没有其他别的用处。rollback to savepoint可以恢复到一个指定的保存点,如果在rollback的时候没有指定任何参数,那么将回滚当前事务的所有更改。

至于savepoint保存点的用法,其语法如下:

SAVEPOINT savepoint_name;

rollback to savepoint执行以后,会做如下几件事情:

(1)自保存点以后所做的所有工作都会撤销,但是保存点未被释放,如果需要,可以再次撤销该保存点;

(2)自该保存点以后的SQL语句所需要的锁和资源都被释放;

(3)撤销保存点,并不是结束整个事务,SQL语句处于挂起状态。

本文标题:oracle数据库中的rollback和savepoint

本文链接:http://yedward.net/?id=33

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章