==[[DB2 ロック属性]]==
[[DB2]] | [[Database]] |
|NS (ネクスト・キー共用)
|行
|ロック所有者とすべての並行アプリケーションは、ロックされた行を読み取ることはできますが、更新はできません。このロックは、S ロックの代わりに、表の行に対して獲得されます。この場合、アプリケーションの分離レベルは、RS ロックの代わりに、表の行に対して獲得されます。この場合、アプリケーションの分離レベルは、[[R]]S か CS のいずれかです。 NS ロック・モードは、ネクスト・キー・ロッキングには使用されません。このモードは、これらのスキャンにおける次のキー・ロッキングの影響を最小化するために CS および RS [[R]]S スキャンの際に S モードの代わりに使用されます。
|-
|S (共用)
|NW (ネクスト・キー弱排他)
|行
|行が索引に挿入されるとき、NW ロックが次の行に獲得されます。タイプ 2 索引の場合、次の行が現在 RR [[R]][[R]] スキャンによってロックされている場合にのみ、これが発生します。ロック所有者は、ロックされた行の読み取りはできますが更新はできません。このロック・モードは、W および NS ロックと互換性があることを除けば、X ロックと類似した働きをします。
|-
|X (排他)
|読み取り専用
|共用ロック (S、NS、または IS) のみ
|取り専用である SELECT、明示的な FOR READ ONLY含む SELECT、SQL SELECT、[[SQL]] コンパイラーが読み取り専用と見なす SELECT
|-
|変更を意図
|共用および更新ロック (行では S、U、X、 7 ブロックでは IX、U、X、S、表では IX、U、X)
|FOR UPDATE、USE AND KEEP UPDATE LOCKS、USE AND KEEP EXCLUSIVE LOCKS を使用するSELECT、暗黙に変更が意図されたとして [[SQL ]] コンパイラーに解釈される SELECT
|-
|変更
|排他ロック (X または IX)
|UPDATE、INSERT、および UPDATE、INSE[[R]]T、および DELETE
|-
|カーソル制御
|排他ロック (X または IX)
|UPDATE WHERE CURRENT WHE[[R]]E CU[[R]][[R]]ENT OF および DELETE WHERE CURRENT WHE[[R]]E CU[[R]][[R]]ENT OF
|-