|
前面说得有点乱,举个具体的例子吧,以ORACLE SCOTT.EMP为例:
session1:
select empno,ename,sal from emp where empno=7369;
EMPNO ENAME SAL
----- ---------- -----
7369 SMITH 800
update emp set sal=10000 where empno=7369;
已更新 1 行。
select empno,ename,sal from emp where empno=7369;
得出结果:
EMPNO ENAME SAL
----- ---------- ------
7369 SMITH 10000
session2:
同时执行:
select empno,ename,sal from emp where empno=7369;
EMPNO ENAME SAL
----- ---------- -----
7369 SMITH 800
针对同一个人,在同一时刻,工资却出现了两个不同的值,也就是同一时刻针对同一事物的同一属性出现了两个完全不同的值,这不是数据的不一致吗?
而同时,其他数据库系统例如:mssql,做上述试验,session1中更改后再查询,会查出修改后的值:10000,session2却处于阻塞状态,直到session1提交才可以出结果,这就做到了同一时刻针对同一事物的同一属性只有一个值,虽然提交或回滚后session2中也许会出现与session1中查询结果的不同值,但那不是同一时刻的结果,希望大家一起讨论。
[ 本帖最后由 sqysl 于 2008-11-20 09:57 编辑 ] |
|