17.05 - LOCKINGリクエスト修飾子の構文 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-175K-JPN
Language
日本語 (日本)
locking_specification [...] SQL_request [;]

構文要素

locking_specification
LOCKING { [ DATABASE ] database_name |
          [ TABLE ] table_name |
          [ VIEW ] view_name |
          ROW
        } [ FOR | IN ] lock_type [ MODE ] [ NOWAIT ]
SQL_request
有効なSQLリクエスト。
LOCKINGをCALL文と一緒に指定することはできません。
SQL_requestがnullの場合、LOCKの効果は、指定されたオブジェクトにロックを設定するだけです。
この指定は、行レベルのロック(行ハッシュまたは行キー)には必須ですが、データベース レベル、基本テーブル レベル、およびビューレベルのロックについては任意指定です。
DATABASE
意選択のキーワードで、ロックが設定されるオブジェクトのタイプを指定します。
database_name
ロックが設定されるデータベースまたはユーザーの名前。
TABLE
意選択のキーワードで、ロックが設定されるオブジェクトのタイプを指定します。
table_name
ロックが設定される基本テーブルの名前を指定します。
VIEW
意選択のキーワードで、ロックが設定されるオブジェクトのタイプを指定します。
view_name
ロックが設定されるビューの名前を指定します。
ROW
定義する文に従ってロックが設定される行ハッシュまたは行キーのレベルを指定する任意のキーワード。LOCKING ROWの使用を参照してください。
lock_type
{ ACCESS |
  { EXCLUSIVE | EXCL } |
  READ [ OVERRIDE ] |
  SHARE |
  WRITE |
  CHECKSUM |
  LOAD COMMITTED
}
MODE
ロック タイプの後の任意のキーワード
NOWAIT
示されたロックが獲得できない場合に、そのリクエストをアボートする必要があります。
リクエストがリソースを待機する状況や、別のリクエストが使用できるリソースを待機中に固定する状況が望ましくない場合に指定します。
ACCESS
他のユーザーによる書き込みアクセス用にロックされている可能性がある基本テーブルから、データの選択ができるようにします。
ACCESSロックを使用して選択されたデータは、データがリクエストと同時に変更されることがあるため一貫性に欠けることがあります。そのため、このロックは一時的なデータ調査にだけ使用すべきです。
ACCESSロックを設定するには、指定されたオブジェクトに対するSELECT権限が必要です。
EXCLUSIVE
EXCL
他のすべてのユーザーを排除します。
これは、最も拘束力のあるロックです。
EXCLUSIVEロックは、データベースに対する構造的な変更を除いて、まれにしか使用されません。
データベース オブジェクトに対してEXCLUSIVEロックを設定するには、そのオブジェクトに対するDROP権限が必要です。
READ
SHARE [Deprecated]
読取り操作(SELECTリクエストなど)でのデータの一貫性を保証します。
複数のユーザーは、基本テーブルに同時にREADロックを保持することができます。READロックが設定されているかぎり、オブジェクトの変更は許可されません。
READロックを設定するには、指定されたオブジェクトに対するSELECT権限が必要です。
OVERRIDE
クエリーの基礎となる基本テーブルに対するロールバックがRecovery ManagerユーティリティのCANCEL ROLLBACK ON TABLEコマンドを使用して取り消された場合に、単一テーブルSELECT操作にREADロックが許可されます。詳細は、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>を参照してください。
READロック リクエストを持つOVERRIDEオプションのみを指定できます。
WRITE
単一のユーザーがデータを変更できるようにします。
WRITEロックが設定されているかぎり、ACCESSロックを使用してデータを見るユーザーを除いて、他のすべてのユーザーはオブジェクトを見たり変更することができなくなります。
WRITEロックが解除されるまで、ロックされたオブジェクトに対する新しいREADロックは許可されません。
WRITEロックを設定するには、指定されたオブジェクトに対するUPDATE、INSERT、またはDELETE権限が必要です。
CHECKSUM
ストアド プロシージャの外部に送信される更新可能なカーソル クエリーにのみ使用されます。
LOAD COMMITTED
ロード コミット読み取りモード。このオプションは、セッション トランザクション分離レベルから独立しています。
他のトランザクションによる書き込みアクセス用にロックされている可能性がある実ロード分離テーブルから、コミットされたデータの選択ができるようにします。
LOAD COMMITTEDロックを設定するには、指定されたオブジェクトに対するSELECT権限が必要です。
内部的に、ACCESSロックはロード コミット読み取りモードが指定されると適用されます。