当update碰到了UR

[复制链接]
查看11 | 回复6 | 2005-9-9 13:45:35 | 显示全部楼层 |阅读模式
弱问一下,DB2中,事务A进行update的时候,默认是加排他锁么?

如果事务B进行select with UR,能读取被update加锁的记录么?

如果能事务2读取到的话,如何操作事务1,使事务2无法读取该记录?
多谢各位:)
回复

使用道具 举报

千问 | 2005-9-9 13:45:35 | 显示全部楼层
select with UR 不加锁,但是读出来也可能是脏数据
回复

使用道具 举报

千问 | 2005-9-9 13:45:35 | 显示全部楼层
原帖由 dickniu 于 31/10/2008 20:09 发表
弱问一下,DB2中,事务A进行update的时候,默认是加排他锁么?

如果事务B进行select with UR,能读取被update加锁的记录么?

如果能事务2读取到的话,如何操作事务1,使事务2无法读取该记录?
多谢各位:)

Yes, 'X' lock on row.
B can read the update with UR.
I don't think you can prevent B from reading A's update.
回复

使用道具 举报

千问 | 2005-9-9 13:45:35 | 显示全部楼层
原帖由 dickniu 于 2008-10-31 18:09 发表

如果能事务2读取到的话,如何操作事务1,使事务2无法读取该记录?
多谢各位:)


这个,没办法
应该事务2自己控制阿。


回复

使用道具 举报

千问 | 2005-9-9 13:45:35 | 显示全部楼层
select with UR 不加锁,当然就没有办法通过锁的办法来阻止它来读,所以只有改变事务 B 的隔离级别才行,这也正好是 diablo2 所说的由事务 B 自己来控制。
回复

使用道具 举报

千问 | 2005-9-9 13:45:35 | 显示全部楼层
with ur就能读取胀数据.可能是错误的.
回复

使用道具 举报

千问 | 2005-9-9 13:45:35 | 显示全部楼层
多谢各位,看来得把ur变cs了,呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行