事务的控制(保存点)

保存点:使用保存点的目的是把一个大的事物分成几段进行保存
以实验的方式说明保存点的作用:

 create table testsp (tid number, tname varchar2(20)); // 创建表:2 列:tid tname
 insert into testsp values(1, 'Tom');
 insert into testsp values(2, 'Mary'); // 插入 2 条数据
 savepoint aaa; // 设置保存点 aaa
 insert into testsp values(3, 'Moke'); // 插入 1 条数据
 savepoint bbb; // 设置保存点 bbb
 update testsp set tname='tomson' where tid=1; // 将 Tom 改为 tomson
 delete from testsp where tid=1; // 删除 第一行
 rollback to savepoint bbb; // 回滚至 bbb
 SQL> select * from testsp; // 输出表中所有数据

在这里插入图片描述
我们看到第一行 Tom没有被改为 tomson,也没有被删除

rollback to savepoint aaa; // 此时不能再回退到 bbb
rollback ; //对整个事务进行回滚
select * from testsp;//输出表中的数据

结果为:
在这里插入图片描述
没有数据。
上述两个问题都是因为当执行 commit 或者 rollback 后保存点就会全部无效了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值