ISOLATION 文節
ISOLATION 文節 は、選択ステートメントを実行する分離レベルを指定します。
>>-WITH--+-NC------------------+------------------------------->< +-UR------------------+ +-CS--+------------+--+ | '-KEEP LOCKS-' | +-RS--+-------------+-+ | '-lock-clause-' | '-RR--+-------------+-' '-lock-clause-' lock-clause |--USE AND KEEP EXCLUSIVE LOCKS---------------------------------|
- RR
- 反復可能読み取り
- USE AND KEEP EXCLUSIVE LOCKS
- 排他的行ロックが掛けられ、COMMIT または ROLLBACK ステートメントが実行されるまで保持されます。
- RS
- 読み取り固定
- USE AND KEEP EXCLUSIVE LOCKS
- 排他的行ロックが掛けられ、COMMIT または ROLLBACK ステートメントが実行されるまで保持されます。
USE AND KEEP EXCLUSIVE LOCKS 文節は、次の SQL ステートメントの ISOLATION 文節 でのみ使用できます。
- DECLARE CURSOR
- FOR
- select-statement
- SELECT INTO
- ATTRIBUTES ストリングの PREPARE
- CS
- カーソル固定
- KEEP LOCKS
- KEEP LOCKS 文節は、獲得したどの読み取りロックも長期間保持することを指定するものです。 通常は、読み取りロックは、次の行が読み取られると解除されます。 ISOLATION 文節がカーソルに関連付けられている場合は、ロックは、そのカーソルがクローズされるか、または COMMIT か ROLLBACK ステートメントが実行されるまで保持されます。 関連付けられていない場合は、ロックは、この SQL ステートメントの完了まで保持されます。
- UR
- 非コミット読み取り
- NC
- コミットなし
ISOLATION 文節 を指定しなかった場合は、デフォルトの分離レベルが使用されます。 ただし、非コミット読み取りのデフォルトの分離レベルは例外です。 デフォルトの判別方法については、分離レベルを参照してください。
排他ロック: USE AND KEEP EXCLUSIVE LOCKS 文節を使用の際はご注意ください。 これが指定されると、行に対して掛けられる排他的行ロックにより、作業単位の終了まで、COMMIT(*CS)、COMMIT(*RS)、および COMMIT(*RR) を実行するその他のユーザーが、それらの行に同時にアクセスすることができなくなります。 COMMIT(*NC) または COMMIT(*UR) を実行するユーザーの同時アクセスは可能です。
同義のキーワード : 以下のキーワードは、 旧リリースとの互換性を維持するためにサポートされている同義語です。 これらのキーワードは標準キーワードではないので、原則として使用しないようにしてください。
- キーワード NONE を NC の同義語として使用することができます。
- キーワード CHG を UR の同義語として使用することができます。
- キーワード ALL を RS の同義語として使用することができます。