oracle保存点:savepoint、rolllback to

保存点是事务处理过程中的一个标志,与回滚命令结合使用。其主要用途是允许用户将某一段处理进行回滚而不必回滚整个事务。

--首先创建一个表
create table  library(
title     VARCHAR2(50),
author    VARCHAR2(20),
price     NUMBER(20)
 );

INSERT INTO library VALUES('汤姆·索亚历险记','马克·吐温',30);
SAVEPOINT point_A;--设置保存点A
select * from library;--此时library表的数据
     
INSERT INTO library VALUES('牧羊少年奇幻之旅','保罗·柯艾略',25);
select * from library;
rollback to point_A; --回滚到保存点A
select * from library;--此时library表的数据

用户在事务内可以声明被称为保存点的标记。保存点将一个大事务划分为较小的片断。 用户可以使用保存点在事务内的任意位置作标 记。之后用户在对事务进行回滚操作时,就可以选择从当前执行位置回滚到事务内的任意一个保存点。例如用户可以在一系列复杂的更新操作之间插入保存点,如果执行过程中一个语句出现错误,用户可以回滚到错误之前的某个保存点,而不必重新提交所有的语句。 在开发应用程序时也同样可以使用保存点。如果一个过程内包含多个函数,用户可以在每个函数的开始位置创建一个保存点。当一个函数失败时, 就很容易将数据恢复到函数执行之前的状态,回滚后可以修改参数重新调用函数,或执行相关的错误处理。 当事务被回滚到某个保存点后, Oracle将释放由被回滚语句使用的锁。其他等待被锁资源的事务就可以继续 执行。需要更新被锁数据行的事务也可以继续执行。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值