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
  • テンポラル修飾子は、対応するテンポラル次元を持つテーブルでのみ使用できます。例えば、valid-timeテーブルまたは二重テンポラル テーブルでのみ、VALIDTIME修飾子を使用できます。
  • FROM句のテンポラル修飾子は、文レベルの同じテンポラル次元の修飾子より優先されます。例えば、次の問合わせについて考えてみます。
    SEQUENCED VALIDTIME SELECT Policy.policy_id
    FROM Policy CURRENT VALIDTIME, Policy_History;
    この場合、文レベルのSEQUENCED VALIDTIMEは、FROM句でテンポラル修飾子を持つポリシーでは無視されます。ただし、SEQUENCED VALIDTIMEはFROM句に一時的な修飾子がないPolicy_Historyには適用されます。
  • FROM句のテンポラル修飾子に対応するtable_nameのvalid-timeまたはtransaction-time列は、問合わせのスコープ内にあるとみなされ、したがって、WHERE条件やJOIN条件のように、問合わせ内の任意の場所で参照できます。
  • AS OF修飾子は、valid-time次元とtransaction-time次元に個別に適用できます。
  • AS OF修飾子のdate_timestamp_expressionがテーブルの列を参照する場合、Teradata Databaseは参照列の各値のテンポラル テーブルにAS OF修飾子を適用し、すべての結果の組み合わせを返します。
    SELECT Policy.customer_id,Incident.Id
    FROM Policy AS OF Incident.Injury_date 
    WHERE Policy.customer_id = Incident.customer_id ;
    
  • date_timestamp_expressionがテーブルの列を参照し、そのテーブルが明示的なJOIN句を使用した結合に関係している場合、AS OF修飾子の結果として生じる条件は、ON句ではなく、WHERE句に追加されます。例えば、SELECT文
    SELECT Policy.customer_id,Incident.Id
    FROM Policy AS OF Incident.Injury_date
    LEFT OUTER JOIN Incident ON Policy.customer_id = Incident.customer_id;
    
    はSELECT文
    SELECT Policy.customer_id,Incident.Id
    FROM (NONSEQUENCED VALIDTIME SELECT * FROM Policy )Policy
    LEFT OUTER JOIN Incident ON Policy.customer_id = Incident.customer_id 
    WHERE Policy.Policy_Term CONTAINS Incident.Injury_date;
    
    と同じです。
  • UPDATE文またはDELETE文のFROM句内のテンポラル修飾子に関連するテーブルは、DELETE文またはUPDATE文が変更するテーブルにすることはできません。