oracle学习笔记(五)--事务

1,什么是事务
  事务用于保证数据的一致性,它由一组相关的dml语句(增删改)组成,该组的dml语句要么全部成功,要么全部失败。


  事务处理:所谓的事务处理就是保证操作的完整性,所有操作要么同时成功,要么同时失败。
  如:网上转账就是典型的要用事务来处理,用以保证数据的一致性。


2, 原理如下:
在Oracle每个连接到数据库的窗口,连接之后建立一个session。一个session里面对数据所做的修改,不会立刻反应在数据库的真实数据之

上,是允许回滚的,当一个session提交所有的操作后,数据才真正地做出修改。


3,事务的几个重要操作
   1)、设置保存点     savepoint a
   2)、取消部分事务   rollback to a
   3)、取消全部事务   rollback

 

4、提交事务

   当执行使用commit语句可以提交事务,当执行了commit语句后,会确认事务的变化、结束事务,删除保存点,释放锁,当使用commit语

句结束事务子后,其他回话将可以查看到事务变化后的新数据。


5,两个事务操作:
   提交:commit
   回滚:rollback
   Commit后数据无法回滚。
 
死锁:一个session里面对某行数据进行更新操作,如果没有commit,那么另外一个session针对这行数据的更新将需要等待,直到第一个

session commit后,才提交更新数据。


例如:// 加入事务处理
   conn.setAutoCommit(false);

    //一些操作。。。

  // 提交事务
  conn.commit();
 
   在catch中写入
  // 如果发生异常,就回滚

   try{
      conn.rollback();

     }catch(Exception e){
  
       e.printStackTrace();
    }

6,只读事务

 只读事务是指指允许执行查询的操作,而不允许执行任何其他dml操作的事务,使用只读事务可以确保用户只能取得某时间点的数据。在设置了只读事务后,尽管其他回话可能会提交新的事务,但是只读事务将不会取得最新数据的变化,从而可以保证取得特定时间点的数据信息。

例如,机票代售点每天18点开始统计今天的销售情况,这是可以使用只读事务。

 

设置只读事务
set transcation read only  

 

 

你可能感兴趣的:(oracle,事务,提交,回滚)