ISOLATION 是Connection的一个property,每个session都有自己的Isolation Level
1)Read Uncommitted (不做控制)
能读别人已修改未提交的data
begin tran
insert
(can read data)
2)Read committed
不能读别人已修改未提交的data
begin tran
insert
直到commit
(can read data)
3)Repeatable read
不能读别人已修改未提交的data
同时,自己读的data不允许其他transaction修改
(但别的transaction可以insert数据,这样本身transaction再读一次可能有不同结果, 举例?)
4)Serialiable(完全隔离)
同2)
同3)
别的transaction不能insert落在本身transaction可读范围内的data
例如:SELECT * FROM SalesOrder WHERE SOID < 1000
那么在另一个transaction中:
INSERT INTO SalesOrder SELECT 900 (错误)
INSERT INTO SalesOrder SELECT 1001 (可以)
1)Read Uncommitted (不做控制)
能读别人已修改未提交的data
begin tran
insert
(can read data)
2)Read committed
不能读别人已修改未提交的data
begin tran
insert
直到commit
(can read data)
3)Repeatable read
不能读别人已修改未提交的data
同时,自己读的data不允许其他transaction修改
(但别的transaction可以insert数据,这样本身transaction再读一次可能有不同结果, 举例?)
4)Serialiable(完全隔离)
同2)
同3)
别的transaction不能insert落在本身transaction可读范围内的data
例如:SELECT * FROM SalesOrder WHERE SOID < 1000
那么在另一个transaction中:
INSERT INTO SalesOrder SELECT 900 (错误)
INSERT INTO SalesOrder SELECT 1001 (可以)