ここにJOBDURATIONという名前のVALIDTIME列を持つターゲット テンポラル テーブル定義のTeradataテンポラル例を示します。
CREATE MULTISET TABLE TARGET_EMP_TABLE( EMP_ID INTEGER, EMP_NAME CHAR(30), EMP_DEPT INTEGER, JOBDURATION PERIOD(DATE) NOT NULL AS VALIDTIME) PRIMARY INDEX(EMP_ID);
次に、サンプル ターゲットTeradataテンポラル テーブル定義のTeradata PTスキーマ定義の例を示します。
DEFINE SCHEMA EMPLOYEE_SCHEMA DESCRIPTION 'SAMPLE EMPLOYEE SCHEMA' ( EMP_ID INTEGER, EMP_NAME CHAR(30), EMP_DEPT INTEGER, JOBDURATION PERIOD(DATE) USINGEXTENSION('AS VALIDTIME') );
サンプルのTeradata PTスキーマ定義では、JOBDURATION列にUSINGEXTENSIONオプションが指定されています。USINGEXTENSIONオプションには、'AS VALIDTIME'という値があります。
このジョブでは、テンポラル修飾子(SEQUENCED、NONSEQUENCED、またはCURRENT)を使用してDML文を指定する必要があります。次に、SEQUENCEDテンポラル修飾子を含むサンプルのDML文を示します。
SEQUENCED VALIDTIME INSERT INTO TARGET_EMP_TABLE (:EMP_ID, :EMP_NAME, :EMP_DEPT, :JOBDURATION);
UpdateオペレータによってUSING句が構築されて、データベースに送信されます。次にサンプルのUSING句を示します。
USING EMP_ID(INTEGER), EMP_NAME(CHAR(30)), EMP_DEPT(INTEGER), JOBDURATION(PERIOD(DATE) AS VALIDTIME) SEQUENCED VALIDTIME INSERT INTO TARGET_EMP_TABLE (:EMP_ID, :EMP_NAME, :EMP_DEPT, :JOBDURATION);
データベースでテンポラルNoPIステージング テーブルを作成するには、USINGEXTENSION値が必要です。データは取得フェーズ中にステージング テーブルに取り込まれます。取得フェーズが終了すると、アプリケーション フェーズ内でステージング テーブルからテンポラル ターゲット テーブルにデータがマージされます。アプリケーション フェーズが終了したらステージング テーブルを削除できます。