`
robot_liu
  • 浏览: 83093 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Savepoint 和 部分回滚(Partial Rollback)

SQL 
阅读更多
Savepoint 和 部分回滚(Partial Rollback)

     在SQL和PL/SQL中Savepoint是在一事务范围内的中间标志。经常用于将一个长的事务划分为小的部分。保留点Savepoint可标志长事务中的任何点,允许可回滚该点之后的操作。在应用程序中经常使用Savepoint;例如一过程包含几个函数,在每个函数前可建立一个保留点,如果函数失败,很容易返回到每一个函数开始的情况。在回滚到一个Savepoint之后,该Savepoint之后所获得的数据封锁被释放。为了实现部分回滚可以用带TO Savepoint子句的ROLLBACK语句将事务回滚到指定的位置。


BEGIN

INSERT INTO ATM_LOG(who,when,what,where)
VALUES ('Kiesha',SYSDATE,'Withdrawal of $100','ATM54')
SAVEPOINT ATM_LOGGED;

UPDATE checking
SET balance=balance-100
RETURN balance INTO new_balance;

IF new_balance<0
THEN
ROLLBACK TO ATM_LOGGED;
COMMIT
RAISE insufficient_funda;
END IF

END
分享到:
评论

相关推荐

    SQL3保存点和部分回滚的设计和实现 (1).pdf

    在SQL3标准中,设置保存点的语句是SAVEPOINT <savepoint specifier>,部分回滚语句是ROLL BACK TO SAVEPOINT <savepoint specifier>,撤消保存点语句是RELEASE SAVEPOINT <savepoint specifier>。保存点只在事务活动...

    MySQL事务部分回滚-回滚到指定保存点.zip_MYSQL_begunfqh_detailrj2

    `,并使用`ROLLBACK TO SAVEPOINT`命令回滚到该保存点,例如`ROLLBACK TO SAVEPOINT my_savepoint;`。 在描述中提到的“mysql begunfqh detailrj2”可能是某种特定的上下文或者问题情境,但没有足够的信息来详细...

    oracle 在java中的事务处理和异常回滚。

    手动事务管理通常通过`Connection`对象的`setAutoCommit(false)`方法来关闭自动提交,然后通过`commit()`和`rollback()`方法来控制事务的提交和回滚。下面是一个简单的示例: ```java try (Connection conn = ...

    SQL回滚的作用什么

    SQL回滚(Rollback)是事务处理中的一个重要组成部分,它允许用户撤销未提交的事务更改,将数据库状态恢复到事务开始之前的状态。 #### 什么是SQL回滚? SQL回滚是指在执行一系列数据库操作后,如果发现这些操作...

    JDBC事务管理及SavePoint示例Java开发Jav

    使用`Connection`对象的`setSavepoint(String savepointName)`方法可以设置SavePoint,`rollback(Savepoint savepoint)`方法则可以回滚到指定的SavePoint。 例如,以下是一个简单的Java代码示例,展示了如何使用...

    ORACLE事务处理机制探析.pdf

    但在复杂的数据库操作中,通常推荐使用显式事务控制,以便更好地管理事务的边界和回滚范围。 在实际应用中,例如员工管理系统,当需要删除一个部门时,可以将删除部门和关联的员工作为一个事务来处理。首先,启动...

    关于SQL事物的简单介绍

    在SQL中,可以使用SAVE TRANSACTION savepoint_name创建保存点,并通过ROLLBACK TRANSACTION savepoint_name回滚到该点。在创建的存储过程中,如果在更新“student”表时出错,可以回滚到"point"保存点,仅撤销最后...

    oracle课件:第八章 事务和备份恢复管理.ppt

    提交(COMMIT)和回滚(ROLLBACK)是控制事务的主要操作。COMMIT用于确认事务中的所有操作,使它们永久生效,而ROLLBACK则用于撤销事务中已完成的工作,将数据恢复到事务开始前的状态。SAVEPOINT允许在事务中设置一个...

    实验17事务与并发控制.pdf

    `SAVE TRANSACTION`创建一个保存点,而`ROLLBACK TO SAVEPOINT`则回滚到指定的保存点,这样可以在不完全撤销整个事务的情况下撤销部分操作。 通过这个实验,学生将能够熟练运用SQL Server的事务管理命令,理解事务...

    Oracle数据操作和控制语言详解.pdf

    1. **Savepoint 和 部分回滚** - Savepoint允许在事务中设置保存点,以便部分回滚事务。 - 示例代码: ```sql SAVEPOINT my_savepoint; ROLLBACK TO SAVEPOINT my_savepoint; ``` 2. **一致性和事务** - ...

    OCP之1z0-051题库.pdf

    - 通过ROLLBACK命令可以撤销事务的一部分或全部操作,使数据库回滚到事务开始前的状态。选项B正确。 - 通过COMMIT命令,可以将事务的一部分或全部永久保存到数据库中,使其成为不可逆的操作。选项D正确。 2. **...

    Oracle数据操作和控制语言详解

    - `SET TRANSACTION`:设置事务的特性,如一致性级别和回滚段。 4. 示例: ```sql BEGIN UPDATE checking SET balance=balance-5000 WHERE account='Kieesha'; INSERT INTO checking_log(action_date,action,...

    数据库基础

    3. **事务控制语言(TCL)**:用于管理事务,包括提交(commit)、保存点(savepoint)和回滚(rollback)。 4. **数据控制语言(DCL)**:用于控制数据访问权限,包括授予(grant)和撤销(revoke)用户的权限。 #### 五、Oracle...

    Oracle经典教程2——SQL数据库操作和查询

    - **事务控制语言 (TCL)**:用于管理数据库事务,如提交(COMMIT)、保存点(SAVEPOINT)和回滚(ROLLBACK)等。 - **数据控制语言 (DCL)**:用于管理数据库权限,如授予(GRANT)和撤销(REVOKE)权限。 #### 2. Oracle数据...

    SQL2005小总结

    DTM包括提交(COMMIT)、回滚(ROLLBACK)和保存点(SAVEPOINT)。DDL和DCL操作会立即提交事物,而DML操作在SQL2005中会自动提交,与Oracle不同。 6. **存储过程**:存储过程是预编译的SQL语句集合,可以接受输入...

    oracle 数据操作与事务控制

    ROLLBACK TO SAVEPOINT my_savepoint; ``` 管理锁是事务控制的另一个方面,它们用于控制并发访问数据,防止冲突和数据不一致。Oracle提供了多种类型的锁,如共享锁(读锁)和独占锁(写锁),以实现不同级别的并发...

    数据库的事务处理方法

    这是通过事务的日志记录和回滚机制实现的,当事务异常结束时,系统可以根据日志回滚到事务开始前的状态。 事务的并发控制是解决并发访问可能导致的问题的关键,包括: 1. 丢失修改:两个事务同时修改同一数据,...

    在Java的JDBC使用中设置事务回滚的保存点的方法

    在处理复杂的数据库操作时,保存点(Savepoint)是一个非常有用的工具,特别是在需要部分回滚事务的情况下。本文将详细介绍如何在JDBC中设置和管理事务的保存点。 首先,了解JDBC中的事务控制。在默认情况下,JDBC...

    javajdbc

    - JDBC支持事务的提交、回滚和隔离级别设置,通过`Connection`对象的`commit()`、`rollback()`和`setTransactionIsolation()`方法实现。 6.批处理: - 对于多条相似的SQL语句,批处理可以提高性能。`addBatch()`...

    oracle视频学习笔记.docx

    - **部分回滚**:通过`ROLLBACK TO SAVEPOINT A`回滚到存储点A。 - **全部回滚**:`ROLLBACK`将撤销所有未提交的更改。 - **只读事务**:`SET TRANSACTION READ ONLY`确保用户只能获取某个时间点的数据,无法进行...

Global site tag (gtag.js) - Google Analytics