LOCK文(表の排他制御)
機能
指定した表に排他制御をします。HiRDBが自動的に排他制御する行,又はキー値単位より大きな単位で排他制御をするため,行,又はキー値単位の場合に比べて排他制御によるオーバヘッドを削減できます。
使用権限
表に対するSELECT権限を持つユーザが,その表に共用モードの排他を掛けられます。
表に対するINSERT権限,UPDATE権限,又はDELETE権限を持つユーザが,その表に排他モードの排他を掛けられます。
形式
LOCK TABLE 〔〔RDノード名称.〕認可識別子.〕表識別子 |
オペランド
〔,〔〔RDノード名称.〕認可識別子.〕表識別子〕…
排他制御をする表のデータを,ほかのユーザが参照することは許すが,更新することは許さない(共用モード)場合に指定します。このオペランドを指定したLOCK文発行後の表アクセス時に,共用モードの行,及びキー値の排他資源が削減されます。
排他制御をする表のデータを,ほかのユーザが参照することも,更新することも許さない(排他モード)場合に指定します。ただし,ほかのユーザが排他オプションWITHOUT LOCK NOWAITを指定して検索した場合を除きます。このオペランドを指定したLOCK文発行後の表アクセス時に,共用モードの行,キー値,及び排他モードの行,キー値の排他資源が削減されます。
DISCONNECTするまで排他制御をする場合に指定します。省略した場合,トランザクションの終了まで排他制御をします。
ほかのユーザと排他が競合した場合,待たないでエラーを受け取るときに指定します。省略した場合,排他が競合したときは,排他が解除されるまで,又はシステム定義のpd_lck_wait_timeoutオペランドで指定した時間まで待ちます。
共通規則
図5-1 排他期間の長さと排他レベルの強弱
留意事項
使用例
同じトランザクション中で,在庫表(ZAIKO)を全件検索するため,この表に共用モードの排他制御をします。
LOCK TABLE ZAIKO IN SHARE MODE