今天新来的同事问了我这样一个问题:
UPDATE A SET ID2=ID1,ID3=ID2 会不会出现ID3也全部变成了ID1的值?
其实这就是一个一致读应用的一个好例子,答案当然是不会。
因为oracle会保证事务一致读的特性,就这个例子来说,update所用到的数据都是update开始那个时间点的数据,并不会因为后来你ID2的数据发生变化了,而影响ID3的值。
还有个典型的例子就是游标的引用,当游标打开后,不管游标所引用的数据发生什么样的变化,游标所引用的数据都是打开游标那个时间点的数据。
一定要理解一致读的概念,对分析理解oracle很有帮助。