SET TRANSACTION ISOLATION LEVEL
    { READ UNCOMMITTED
    | READ COMMITTED
    | REPEATABLE READ
    | SNAPSHOT
    | SERIALIZABLE
    }
[ ; ]

以前有些误区,最近了解了一下,一点心得

其实DB的文档已经写的很清除了,只要注意一下几点

 

切记DB的任何操作都是一个Transaction,READ COMMITTED 是默认等级,也就是说,一句SQL语句其实就是一个等级为READ COMMITTED的Transaction

2
在事务之间,对数据库的修改 - Update,Delete是绝对被保护的,也就是说,一个事务没有结束之前,另外一个事务是无法更改前一个事务已经更改的数据
之前自己以为的锁定某某记录,其实不是针对修改,而是针对读取的,这点是一个很大的误区

3
针对读取,参数的解释如下
    { READ UNCOMMITTED  可以读取已由其他事务修改但尚未提交的行,相当于可以读取任何的数据
    | READ COMMITTED 只能读取已由其他事务修改并提交的行,当然,不在事务之中的数据肯定也能读;感觉完全是一种自我约束
    | REPEATABLE READ 读取权限如READ COMMITTED;如果本身已经读取的行,其他的事务不能再修改,但可以新增
    | SNAPSHOT
    | SERIALIZABLE 读取权限如READ COMMITTED;如果已经读取的行,其他的事务不能再修改,不能再新增





 

posted on 2010-07-02 16:22  YoungSin  阅读(276)  评论(0编辑  收藏  举报