16.20 - 構文 - Teradata Vantage NewSQL Engine

Teradata Vantage™ テンポラル テーブル サポート

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1182-162K-JPN
<Teradata Vantage™ テンポラル テーブル サポート>では、特にテンポラル テーブルに関連する構文について説明します。必須ではない構文やテンポラル テーブルに固有ではない構文は、基本的にこのドキュメントには示されていません。その他の構文については、<Teradata Vantage™ SQLデータ定義言語-構文規則および例、B035-1144>、<Teradata Vantage™ SQLデータ操作言語、B035-1146>、および<Teradata Vantage™ SQLデータ制御言語、B035-1149>を参照してください。


テンポラルSQLのANSI標準へのアプリケーションの移植性を確保するため、すべてのテンポラル修飾子を明示的に指定することを推奨します。
database_name
trigger_nameの任意選択の修飾子。
trigger_name
作成または置換されるトリガーの名前。
ENABLED
トリガーの実行を使用可能にするキーワード。
DISABLED
トリガーの実行を使用不能にするキーワード。
BEFORE
トリガー イベントまたはトリガー文より前にトリガーを実行するように指定します。
AFTER
トリガーが、トリガーするイベントの後に起動することを指定します。
CURRENT VALIDTIME
トリガーするイベントがvalid-time次元でcurrentのときに、トリガーが起動されます。
対象テーブルは有効時間を含んでいる必要があります。
VALIDTIME
トリガーするイベントがvalid-time次元でsequencedのときに、トリガーが起動されます。
対象テーブルは有効時間を含んでいる必要があります。
SEQUENCED VALIDTIME
NONSEQUENCED VALIDTIME
トリガーするイベントがvalid-time次元でnonsequencedのときに、トリガーが起動されます。
対象テーブルは有効時間を含んでいる必要があります。
NONTEMPORAL
トリガーするイベントがtransaction-time次元で非テンポラルのときに、トリガーが起動されることを指定します。この場合、トリガー起動文にNONTEMPORAL接頭辞を指定する必要があります。
トリガーされるアクション文で、transaction-time列の値を変更できます。
対象テーブルはトランザクション時間を含んでいる必要があります。対象テーブルが有効時間を含んでいる場合、valid-time次元のデフォルト修飾子はNONSEQUENCED VALIDTIMEになります。
NONTEMPORALオプションを使用するには、NONTEMPORAL権限が必要です。
INSERT
このトリガーをトリガーするイベントが、以下のいずれかであることを指定します。
  • INSERT
  • INSERT... SELECT
  • Atomic Upsert
  • MERGE
トリガーは、正規化された行に対しては起動できません。NORMALIZEキーワードについて、詳細はCREATE TABLE/CREATE TABLE...AS (テンポラル形式)と<Teradata Vantage™ SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
DELETE
このトリガーをトリガーするイベントが、DELETEであることを指定します。
UPDATE
このトリガーをトリガーする文が、以下のいずれかであることを指定します。
  • UPDATE
  • Atomic Upsert
  • MERGE
任意の数の行(ゼロ行でもよい)を更新できます。
トリガーは、正規化された行に対しては起動できません。NORMALIZEキーワードについて、詳細はCREATE TABLE/CREATE TABLE...AS (テンポラル形式)と<Teradata Vantage™ SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
ON [database_name.]table_name
このトリガーに関連する対象テーブル。
対象テーブルが有効時間を含んでいて、トリガー起動文の前にvalid-time修飾子がない場合は、CURRENT VALIDTIMEがデフォルトになります。対象テーブルがトランザクション時間を含んでいて、トリガーする文の前にNONTEMPORALがない場合は、CURRENT TRANSACTIONTIMEがデフォルトになります。
ORDER integer
対象テーブルに複数のトリガーが定義されているときにの、リクエスト内のトリガーの実行順序。
REFERENCING
トリガーに含まれるWHEN条件とトリガーされるアクションが参照できる変換テーブルを指定します。この句は任意選択であり、デフォルトはありません。
FOR EACH ROW
トリガーが、適格な行ごとに起動されることを指定するキーワードを指定します。適格な行とは、トリガーに指定されたWHEN条件がTRUEと評価される行です。
FOR EACH STATEMENT
トリガーのWHEN条件がTRUEと評価されるときに、リクエスト内の処理済みSQL 文ごとにトリガーを1度起動することを指定するキーワード。
WHEN (search_condition)
トリガーを起動する条件を精錬するための検索条件句。
SQL_procedure_statement
1つ以上の有効なトリガー アクション文。
対象テーブルが非テンポラル テーブルであり、トリガー アクションがテンポラル テーブルを参照する場合は、そのトリガー アクション文にcurrent修飾子が適用されます。
対象テーブルがテンポラル テーブルの場合は、トリガーされるすべてのアクション文がトリガーする文の修飾子を継承します。アクションに別の修飾子が必要な場合には、その文をストアド プロシージャに含めて、このストアド プロシージャをアクション文から呼び出してください。
BEGIN ATOMIC
複数のトリガー アクション文を指定するキーワード。
トリガーされるSQL文の句の先頭にBEGIN ATOMICを指定した場合には、ENDキーワードでそれを終了する必要があります。