commit和rollback

原创 2012年03月23日 06:25:19

一、oracle事务

  oracle在第一个可执行sql语句开始时,隐式地开始一个事务,遇到以下情况时结束事务:

  1、commit:整个事务的所有更改永久保存

  2、rollback:撤销事务所做的更改

  3、DDL语句:执行DDL语句时,oracle隐式提交之前事务所做的更改。

  4、程序正常结束:oracle隐式提交

  5、程序失败:oracle隐式rollback

  事务开始时,oracle分配一个撤销段,记录撤销数据。

二、commit

  1、当commit时发生下列事情:重做记录中的事务表被标记所提交事务的唯一SCN

                                               lgwr将事务的重做日志信息连同事务的SCN,从重做日志缓冲区写入到联机重做日志文件

                                               释放事务所持有的锁

  2、commit选项 immediate:commit之后,立即将重做日志信息从日志缓冲区写入到日志文件

                          bath:不立即写

                          wait:直到日志信息成功写入日志文件才返回

                          nowait:不需要等待日志信息成功写入日志文件就可以返回。

    修改commit选项:系统级:比如 alter system set commit_write=bath,nowait scope=spfile

                               会话级:alter session set commit_write=immediate,wait;

                               在提交的时候:commit write immediate nowait;     

三、rollback

  1、当发布rollback之后,oracle使用撤销段中的数据撤销事务所做的更改,释放事务所持有的锁,并标记事务完成。

  2、使用savepoint设置保存点,使用rollback to savepoint save_point_name撤销到保存点,该保存点之后所进行的操作被撤销,保存点被保留。

       事务并未结束,可以继续进行。在oracle中,oracle为每一条sql语句隐式设置保存点,当一条sql语句失败后,oracle隐式撤销到该保存点。           

相关文章推荐

COMMIT和ROLLBACK的用法

转自:juni的blog http://szqu.blog.163.com/blog/static/38298602201002835727720/ 从SQL语言的分类谈COMMIT和ROLLB...
  • yjtgod
  • yjtgod
  • 2013年07月24日 11:03
  • 7339

MYSQL的COMMIT和ROLLBACK

从功能上划分,SQL 语言可以分为DDL,DML和DCL三大类。 1. DDL(Data Definition Language)      数据定义语言,用于定义和管理 SQL 数据库中的所有对...

COMMIT和ROLLBACK的用法

从功能上划分,SQL语言可以分为DDL,DML和DCL三大类。 1. DDL(Data Definition Language) 数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语...
  • inaoen
  • inaoen
  • 2011年11月01日 11:46
  • 4037

Mycat源码篇 : MyCat事务管理机制分析

针对MyCat1.5版本,对MyCat的事务管理机制进行简要分析

关于COMMIT和ROLLBACK语句的使用注意事项

1. COMMIT WORK 语句执行许多与任务的同步执行有关的功能。ROLLBACK WORK语句“取消”任务同步执行的所有请求。COMMIT WORK 语句进行下列处理:• 执行所有由PERFOR...
  • ahhsxy
  • ahhsxy
  • 2010年04月07日 17:48
  • 658

关于数据库的commit以及rollback(转载)

rollback   回滚的意思。  就是数据库里做修改后 ( update  ,insert  , delete)未commit 之前   使用rollback   可以恢复数据到修改之前。 从功...

从SQL语言的分类谈COMMIT和ROLLBACK的用法

从SQL语言的分类谈COMMIT和ROLLBACK的用法 mysql禁用autocommit,以及遇到的问题 mysql禁用...
  • pi9nc
  • pi9nc
  • 2013年12月28日 14:28
  • 10950

mybatis事务与回滚例子 commit、rollback、autoCommit

1.在JDBC中,设置一次将当前所有操作为一次事务的方式是: conn.setAutoCommit( false ); 修改数据库遵从try-cath-finaly: try { ...

PB中的Commit和RollBack

PB中的Commit和RollBack         用PowerBuilder的人都肯定有用到过Commit(提交事务语句)和RollBack(回滚事务语句)。在理解上有一点是值得注意的,这里我想...
  • bjash
  • bjash
  • 2007年07月25日 22:41
  • 5297

oracle cursor_sharing参数

先来看看官方文档中对这个参数的解释CURSOR_SHARINGPropertyDescriptionParameter typeStringSyntaxCURSOR_SHARING = { SIMIL...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:commit和rollback
举报原因:
原因补充:

(最多只允许输入30个字)