Oracle 回滚详解(rollback)

Oracle 回滚详解(rollback)文章目录 1 概述 2 语法 2 1rollback2 2rollbacktos 3rollbackwor string 3 扩展 3 1rollback 官方解释 1 概述 1 rollback 是什么 1 回滚 2 事务管理语句之一 2 rollback 的作用 1 撤销 undo 当前的事务 2 与它相反的是 commit 提交当前的事务 2 语法可选子句解释 关键字解释备注

1 概述

Oracle 事务管理

commit:提交

rollback:回滚

savepoint:允许用户将某一段处理进行回滚而不必回滚整个事务

2 语法

在这里插入图片描述
可选子句解释:

关键字 解释 备注
work 为实现SQL标准兼容性而提供的 写与不写,结果都一样
to savepoint clause 将当前事务回滚至 clause 若省略该子句,则当前事务都会被回滚
force string 仅回滚指定的分布式事务,不会对当前的事务产生影响 string:事务 id,可通过 dba_2pc_pending 进行查询

基础数据准备:

-- 学生信息表 create table student_info ( sno number(10) constraint pk_student_info_sno primary key, name varchar2(30), sex varchar2(2) ); 

2.1 rollback

-- * -- 直接 回滚 事务 -- * declare begin insert into student_info (sno, name, sex) values (1, '张三', '女'); insert into student_info (sno, name, sex) values (2, '李四', '男'); rollback; end; 

运行结果:全部回滚,无数据写入数据库
在这里插入图片描述

2.2 rollback to savepoint xx

-- * -- 1. savepoint xx: 回滚到回滚点 xx -- 2. 若回滚点同名,则回滚至最近的一个回滚点(不建议同名,不方便排查问题) -- * declare begin insert into student_info (sno, name, sex) values (1, '张三', '女'); savepoint sp1; insert into student_info (sno, name, sex) values (2, '李四', '女'); savepoint sp2; -- 若也是 ps1,则回滚至此处(最近) -- 模拟报错:违反唯一性约束 insert into student_info (sno, name, sex) values (2, '王五', '男'); savepoint sp3; commit; exception when others then rollback to sp1; -- 报错信息 dbms_output.put_line(dbms_utility.format_error_backtrace); dbms_output.put_line(sqlcode ||' : ' || sqlerrm); commit; end; 

运行结果:
在这里插入图片描述

2.3 rollback work force ‘string’

1. 使用场景 (1) 分布式事务 2. 具体操作 (1) select * from dba_2pc_pending; -- 查询 (2) rollback work force '25.32.87'; -- 回滚 

3 扩展

3.1 rollback 官方解释

  • Oralce 官方解释:rollback
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206045.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午4:36
下一篇 2026年3月19日 下午4:36


相关推荐

  • 我为什么放弃Go语言

    我为什么放弃Go语言我为什么放弃Go语言?有好几次,当我想起来的时候,总是会问自己:这个决定是正确的吗?是明智和理性的吗?其实我一直在认真思考这个问题。开门见山地说,我当初放弃Go语言,就是因为两个“不爽”:第一,对Go语言本身不爽;第二,对Go语言社区里的某些人不爽。毫无疑问,这是非常主观的结论,但是我有足够详实的客观的论据。

    2022年6月30日
    19
  • python airflow_Airflow 安装

    python airflow_Airflow 安装前段时间部门要求研究 airflow 大概记录一下安装的步骤 airflow 是一个 python 实现的工作流管理平台 官网 http airflow incubator apache org 安装环境和必要软件 ubuntu16 04Python3mys 如果无法安装某些软件 更新一下系统源更改为阿里云源简单步骤 1 先安装 Python3ubunt 04 自带 python

    2025年8月8日
    7
  • rabbitmq linux端口,修改rabbitmq的连接端口

    rabbitmq linux端口,修改rabbitmq的连接端口rabbitmq 的默认连接端口是 5672 如果要修改的话 可以通过配置文件修改当然一般情况下都会遇到坑默认配置文件地址 安装目录下的 etc 就这样一个东东然后为了怕改错复制一份出来保留 就可以把后面的 example 删除掉留下 rabbitmq config 无图无真相 就是这个样紫然后打开瞧瞧非常大一篇 而且全部配置都是注释掉的 格式有点类似 json 数组 我们要修改默认的端口就找到 tcp listen

    2026年3月17日
    3
  • 就这样CSDN账号被人盗了??

    就这样CSDN账号被人盗了??

    2022年1月19日
    56
  • webpack css_web引入css文件

    webpack css_web引入css文件css文件处理-准备工作(以下项目配置都是基于上一篇webpack(4)的基础上)在项目开发中,我们必然需要添加很多的样式,而样式我们往往写到一个单独的文件中。这里我们就在src目录中创建一个n

    2022年8月7日
    6
  • AD中测量两点之间的距离

    AD中测量两点之间的距离

    2021年6月21日
    96

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号