Oracle Savepoint
1.目的:
Use the SAVEPOINT statement to identify a point in a transaction to which you can later roll back.
使用检查点语句标识一个事务点以便在后面可以回滚。
2. 预备知识:
无。
3.语法:
SAVEPOINT savepoint ;
4.下面来看示例:
1)首先看一下员工表中Banda的工资
SQL> select employee_id, last_name, salary from employees where last_name='Banda';
EMPLOYEE_ID LAST_NAME SALARY
----------- ------------------------- ----------
167 Banda 6200
2)我们来修改一下Banda的工资并创建检查点banda_sal:
SQL> update employees
2 set salary = 7000
3 where last_name ='Banda';
已更新 1 行。
SQL> savepoint banda_sal;
保存点已创建。
3)再对Banda的工资做一次修改并创建检查点banda_sal2:
SQL> update employees
2 set salary = 8000
3 where last_name ='Banda';
已更新 1 行。
SQL> savepoint banda_sal2;
保存点已创建。
SQL> select employee_id, last_name, salary from employees where last_name='Banda';
EMPLOYEE_ID LAST_NAME SALARY
----------- ------------------------- ----------
167 Banda 8000
4)下面进行回退操作,使回退到检查点banda_sal:
SQL> rollback to savepoint banda_sal;
回退已完成。
SQL> select employee_id, last_name, salary from employees where last_name='Banda';
EMPLOYEE_ID LAST_NAME SALARY
----------- ------------------------- ----------
167 Banda 7000
5)下面进行提交操作,再进行回退操作:
SQL> commit;
提交完成。
SQL> rollback to savepoint banda_sal2;
rollback to savepoint banda_sal2
*
第 1 行出现错误:
ORA-01086: 从未创建保存点 'BANDA_SAL2'
5. 总结:
1)通过创建检查点我们可以在事务提交前回退到任意已创建检查点的事务。
2)检查点在事务提交后就不存在了,这点可以从示例中看出。
Oracle Savepoint的更多相关文章
- Oracle中SAVEPOINT和ROLLBACK用法
savepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepoint来标识不同的点.如果遇到错误,就可以rollback到不同的点或直接回来事 ...
- 4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别
事务提交过程 事务 基本概念 概念:一个或者多个DML语言组成 特点:要么都成功.要么都失败 事务的隔离性:多个client同一时候操作数据库的时候.要隔离它们的操作, 否则出现:脏读 不可反 ...
- Oracle之savepoint
Oracle之savepoint 什么是savepoint?Use the SAVEPOINT statement to identify a point in a transaction to wh ...
- 【Oracle】(savepoint)保存点的使用
作用 保存点可以回退到事务的一部分,我们在操作数据库的过程中可以对事务分隔为几个部分,在操作失误的时候就可以回滚到某个点即可. 实现步骤 我们现在新建一张表TMP003 )); 第一步:插入第一条记录 ...
- Oracle中的SAVEPOINT
学习存储过程中使用断点回滚事务时,发现目前网络上存在一个问题,那就是使用断点回滚后,都忘记了一个很重要的事情,提交事务.虽然使用了断点回滚,但是断点回滚不像rollBack或commit一样结束当前事 ...
- Oracle 的基本操作符
!= 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- [原创]关于ORACLE的使用入门
Oracle===============================数据库:Oracle------>甲骨文(Oracle) 49+%DB2---------->IBM 49+%Sq ...
- Oracle学习笔记四 SQL命令(二):SQL操作语言类别
SQL分为下列语言类别 1.数据定义语言(DDL) Create.Alter.Drop 2.数据操纵语言(DML) Insert.Select.Delete.Update 3.事务控制语言(TCL) ...
随机推荐
- ArcGIS API for Silverlight 点沿着线流动
原文:ArcGIS API for Silverlight 点沿着线流动 概述 前段时间做了一个项目,要求是有一些电力输送线,电力输送线或者石油管道都是有流动方向的,用户想做一个动态效果来模拟电力的输 ...
- iOS 开发者账号共用发布证书 (Distribution)问题
苹果客服回复: 1.第一台申请发布证书的电脑,从钥匙串中导出发布证书(Distribution)颁发的request文件?然后在第二台电脑上用request文件新生成一个Distribution证书, ...
- js的语句
1.语句类型总结 var box = 100;//单行语句 { //用花括号包含的语句集合,叫做复合语句,单位一个 //一对花括号,表示一个复合语句,处理时,可以单做一条单行语句, //复合语句,我们 ...
- MySQL学习笔记——复制的实现原理
1.三个线程 MYSQL复制是从主服务器复制到一个或多个从服务器的异步过程,在主服务器与从服务器之间实现整个复制过程主要由三个线程来实现,其中一个线程I\O在主服务器器端,另两个线程(SQL线程和I\ ...
- php 读取webservice接口
开启 extension = php_soap.dll extension = php_curl.dll extension = php_openssl.dll <script src=&quo ...
- 前端实战——前端效果accordition的实现
一.bootstrap实现 1)水平折叠组件 使用panel和collaspe组件 <!doctype html> <html lang="zh-hans"> ...
- block数据类型
// // main.m // 04-block数据类型 // // Created by apple on 14-3-18. // Copyright (c) 2014年 apple. Al ...
- log file switch (checkpoint incomplete)
接手了一个新交接的库,alert日志频繁报告log file switch (checkpoint incomplete)事件 oracle文档解释: Waiting for a log switch ...
- Starting MySQL...The server quit without updating PID file
修改mysql的配置文件(my.cnf)后,再启动mysqld的时候报错: # service mysqld start Starting MySQL...The server quit withou ...
- system(linux) power on note
读詹荣开文档摘 BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot Loader Boot Loader执行全 ...