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

テンポラル参照制約はすべて「ソフトRI」である(つまりTeradata Databaseはこれらの制約を強制しない)ため、そのテーブルの参照整合性を確認または検証する責任は、もっぱらユーザーにあります。

整合性の保証という点からすれば、標準またはバッチ参照制約の宣言を使用しないでテーブルの参照整合性を保証する最善の方法は、関係するテーブルへの挿入、更新、および削除を処理するトリガーの集合などの一連の手続きによる制約を使用することです。

たとえば、参照整合性を施行するために親テーブル上にDELETE/UPDATEトリガー、子テーブル上にINSERT/UPDATEトリガーを作成する場合があります。以下の例では、SEQUENCED参照制約を施行するためにUPDATEトリガーを定義する方法を示しています。

REPLACE TRIGGER trg_ri_validator
AFTER SEQUENCED VALIDTIME UPDATE OF  column_of_interest  ON  child_table 
REFERENCING NEW_TABLE as New1
FOR EACH STATEMENT
BEGIN ATOMIC
(
ABORT  'RI Violation'
FROM
  ( NONSEQUENCED VALIDTIME
    SELECT  foreign_key_column 
    FROM  child_table 
    WHERE  foreign_key_column  IS NOT NULL
     AND  foreign_key_column  NOT IN
        ( SELECT  parent_table.primary_key_column  FROM  parent_table 
          WHERE  parent_table.validtime_column 
                CONTAINS  child_table.validtime_column 
          AND  child_table.foreign_key_column  =  parent_table.primary_key_column  )
  )  derived_table_name;
) END; 

CREATE文とREPLACE TRIGGER文について、詳細はTeradata Vantage™ SQLデータ定義言語-構文規則および例、B035-1144を参照してください。

宣言制約が手続きによる制約よりも望ましい理由については、Teradata Vantage™ - データベースの設計、B035-1094で簡単に説明されています。アクティブに起動しているトリガーは、置換する予定の単純な宣言制約よりも、システム パフォーマンスにさらに悪い影響を与える可能性があります。

参照整合性制約のいずれの形式も施行しない場合には、参照制約違反が生じる時間と場所を検出できる一連の評価手順を施行することを強くお勧めします。

子テーブルのテンポラル参照制約の検証に使用できる問合わせを次に示します。