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では、PERIODデータ型のデータ型 レベルでのテンポラル テーブル サポートを提供しています。PERIODとは固定期間のことであり、期間内で連続する時間単位を表現します。PERIODには、開始境界値(開始要素の値で定義)と、終了境界値(終了要素の値で定義)があります。開始要素と終了要素は、DATE、TIME、またはTIMESTAMPの、どのタイプにすることもできますが、両方を同じタイプにする必要があります。

PERIODで表現する期間は、開始境界値から始まり、終了境界値まで続きます。ただし、終了境界値は含みません。

要素型がDATEまたはTIMESTAMPの場合、終了境界値にはUNTIL_CHANGEDという特別な値を指定できます。この値をTeradata Databaseは、PERIODの終了境界値が永久(つまり、無期限)であると解釈します。

Policyテーブルにテンポラル テーブル サポートを追加する最初の手順として、保険会社のアプリケーションでは、各行がいつ有効かを記録するためのPERIOD(DATE)列を含むPolicyテーブルを作成します。

   CREATE TABLE Policy(
      Policy_ID INTEGER,
      Customer_ID INTEGER,
      Policy_Type CHAR(2) NOT NULL,
      Policy_Details CHAR(40),
      Validity PERIOD(DATE)
      )
   PRIMARY INDEX(Policy_ID);

このPolicyテーブルは非テンポラル テーブルですが、アプリケーションではTeradata DatabaseがPERIODタイプに提供する組込みのサポートを使用できます。このサポートには、PERIODのコンストラクタ、リテラル、演算子、関数および述部が含まれます。

たとえば、テーブルに行を追加する場合、アプリケーションではPERIODのコンストラクタを使用してValidity列の値を指定します。

   INSERT INTO Policy
      (Policy_ID, Customer_ID, Policy_Type, Policy_Details, Validity)
      VALUES (541008, 246824626, 'AU', 'STD-CH-345-NXY-00',
              PERIOD(DATE '2009-10-01', UNTIL_CHANGED));

特定の日付から有効になる行をPolicyテーブルから取得する場合、アプリケーションでは次に示すようにBEGIN関数を使用します。

   SELECT * FROM Policy WHERE BEGIN(Validity) = DATE '2010-01-01';