下表显示了最常见的锁模式的兼容性。
|
现有的授权模式 |
|
|
|
|
|
---|---|---|---|---|---|---|
请求的模式 |
IS |
S |
U |
IX |
SIX |
X |
意向共享 (IS) |
是 |
是 |
是 |
是 |
是 |
否 |
共享 (S) |
是 |
是 |
是 |
否 |
否 |
否 |
更新 (U) |
是 |
是 |
否 |
否 |
否 |
否 |
意向排他 (IX) |
是 |
否 |
否 |
是 |
否 |
否 |
意向排他共享 (SIX) |
是 |
否 |
否 |
否 |
否 |
否 |
排他 (X) |
否 |
否 |
否 |
否 |
否 |
否 |
注意 |
---|
意向排他锁(IX 锁)与 IX 锁模式兼容,因为 IX 表示打算只更新部分行而不是所有行。还允许其他事务尝试读取或更新部分行,只要这些行不是其他事务当前更新的行即可。此外,如果两个事务尝试更新同一行,则将在表级和页级上授予这两个事务 IX 锁。但是,将在行级授予一个事务 X 锁。另一个事务必须在行级锁被删除前等待。 |