ORACLE事务隔离性级别

        事务隔离性级别(Transaction Isolation Level)是一个事物对数据库的修改,与并行的另外一个事物的隔离程度.

        首先我们先了解试图访问表中相同行是可能会出现的问题.

       1、幻像读取(phantom read)

           事务1读取指定的where子句返回的结果集,事务2插入一条记录.而事务2插入的这条记录恰好满足事务1指定的where条件,且同时事务1再次执行查询时,就查询出了刚刚插入的这条记录,这个新行就被称为“幻像”.

       2、不可重复读取(nonrepeatabl read)

           事务T1刚读取了一条记录,紧接着事务T2修改了事务T1读取的那条记录,事务T1紧接着又读取了一次,这次发现与刚才读取的内容不同了, 这种现象称为“不可重复读取”.

       3、脏读(dirty read)

          事务T1更新了一行记录,但是并没有commit,事务T2读取了事务T1更新后的行,事务T1执行了回滚操作,撤销了刚才的修改,现在T2显示的数据已经不存在了,这是所读取的数据就被称为“脏数据".

       为了处理这些问题,数据库规定了事务隔离性级别。

            1、read uncommited:幻像读、不可重复读取、脏读都允许.

            2、read commited:允许幻像读、重复读取,不允许脏读.

            3、repeatable read:允许幻像读,不允许不可重复读取、脏读.

            4、serializable:幻像读、不可重复读取、脏读都不允许.


  注意:ORACLE数据库不支持read uncommited、repeatable read这两种事务隔离性级别.


语法格式如下:

           set   transaction isolation level {read uncommited | read commited | repeatable read|serializable | serializable}

 

示例:

           幻像读、不可重复读取、脏读都不允许:

           SQL>SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值