众所周知,脏读的定义在SQL92标准中是这样定义的:
SQL-transaction T1 modifies a row. SQL- transaction T2 then reads that row before T1 performs a COMMIT. If T1 then performs a ROLLBACK, T2 will have read a row that was never committed and that may thus be considered to have never existed.而且ORACLE本身也没有实现脏读。那下面这种现象应该属于哪种隔离级别呢?1. 事务A修改了某条数据(还未提交)
2. 事务B查询了该条正在被修改的数据(但是查询出来的是还没修改时候的值,因为事务A还没提交)
3. 事务A提交了修改,数据发生变化这时候事务B得到的数据就是脏数据了?
SQL-transaction T1 modifies a row. SQL- transaction T2 then reads that row before T1 performs a COMMIT. If T1 then performs a ROLLBACK, T2 will have read a row that was never committed and that may thus be considered to have never existed.而且ORACLE本身也没有实现脏读。那下面这种现象应该属于哪种隔离级别呢?1. 事务A修改了某条数据(还未提交)
2. 事务B查询了该条正在被修改的数据(但是查询出来的是还没修改时候的值,因为事务A还没提交)
3. 事务A提交了修改,数据发生变化这时候事务B得到的数据就是脏数据了?
不同的事务隔离级别,B能读到的未提交的数据,那么就是脏读,在oracle中这属于,READ UNCOMMITTED的事务隔离级别。
我想了下,这个现象应该属于不可重复读的范畴?