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標準へのアプリケーションの移植性を確保するため、すべてのテンポラル修飾子を明示的に指定することを推奨します。
CURRENT VALIDTIME
ターゲット テーブルが有効時間をサポートする場合、削除がvalid-time次元でcurrentになることを指定します。
CURRENT DELETEは現在行にのみ作用します。TEMPORAL_TIMESTAMPまたはTEMPORAL_DATEと重ならないvalid-time期間を含む将来行は、削除されません。
ターゲット テーブルが有効時間をサポートしない場合は、参照先のテーブルのうち少なくとも1つが有効時間を含んでいる必要があります。この削除はcurrent削除にはなりません。CURRENT VALIDTIME修飾子は、valid-time次元で参照先のテーブルの行を対象とするために使用します。transaction-time次元では、オープン行を対象とします。
CURRENT DMLを変更すると、並行トランザクションにおける逐次性の問題が発生することがあります。これらの問題を避ける方法の詳細は、CurrentテンポラルDMLに付随する潜在的な同時並行性の問題を参照してください。
VALIDTIMEとSEQUENCED VALIDTIME
ターゲット テーブルが有効時間をサポートする場合、削除はvalid-time次元でsequencedになります。
ターゲット テーブルが有効時間をサポートしない場合は、参照先のテーブルのうち少なくとも1つが有効時間を含んでいる必要があります。この削除はsequenced削除にはなりません。VALIDTIME修飾子またはSEQUENCED VALIDTIME修飾子は、valid-time次元で参照先のテーブルの行を対象とするために使用します。transaction-time次元では、オープン行を対象とします。
period_expression

DML文の適用期間を指定します。

適用期間は、列を参照しないPERIOD定数式である必要がありますが、パラメータ化された値とTEMPORAL_DATEまたはTEMPORAL_TIMESTAMPビルトイン関数を参照できます。

適用期間は、DML文のテンポラル修飾子に関係なく、常に時間次元でnonsequencedである自己格納型の非相関スカラー サブクエリーにすることもできます。

period_expressionが指定されている場合、valid-time列は、問合わせ内の任意の場所で指定したり参照したりすることはできません。valid-time列が派生期間列の場合、問合わせ内の任意の場所でコンポーネント列を指定したり参照したりすることはできません。

period_expressionを省略すると、valid-time列がPERIOD(DATE)の場合には、適用期間のデフォルトにPERIOD'(0001-01-01, UNTIL_CHANGED)'が設定されます。また、valid-time列がPERIOD(TIMESTAMP( n ) WITH TIME ZONE)の場合には、'(0001-01-01 00:00:00.000000+00:00, UNTIL_CHANGED)'に設定されます。ここで、nは精度であり、WITH TIME ZONEは任意です。

NONSEQUENCED VALIDTIME
ターゲット テーブルが有効時間をサポートする場合、削除はvalid-time次元でnonsequencedになります。
ターゲット テーブルが有効時間をサポートしない場合は、参照先のテーブルのうち少なくとも1つが有効時間を含んでいる必要があります。この削除はnonsequenced削除にはなりません。NONSEQUENCED VALIDTIME修飾子は、valid-time次元で参照先のテーブルの行を対象とするために使用します。transaction-time次元では、オープン行を対象とします。
NONTEMPORAL
削除はvalid-time次元でnonsequencedになり、transaction-time次元で非テンポラルになります。
ターゲット テーブルはトランザクション時間をサポートしている必要があります。
table_name
削除操作によって行を削除するターゲット テーブルの名前。
[AS] correlation_name
任意選択のテーブル別名。
joined_table_name
WHERE句で参照する、結合されたテーブルの名前。
WHERE condition
削除する行のフィルタリング条件。