Transaction-Time列の追加 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ テンポラル テーブル サポート

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/avd1530664741287.ditamap
dita:ditavalPath
ja-JP/avd1530664741287.ditaval
dita:id
B035-1182
Product Category
Software
Teradata Vantage

追加したtransaction-time列には、PERIOD(TEMPORAL_TIMESTAMP, UNTIL_CLOSED)のシステム デフォルト値が設定されます。

ALTER TABLEを使用して既存のテーブルにtransaction-time列を追加するときには、CREATE TABLE/CREATE TABLE...AS (テンポラル形式)に明記したtransaction-time列を指定するためのルールに加えて、次に示すルールが適用されます。

  • テーブルにUPIを含めることはできません。
  • その場合、最初にALTER TABLEtable_nameMODIFY NOT UNIQUEを使用します。これは、PIを非固有に変更するためのもので、SQLデータ定義言語で説明されています。
  • テーブルがNUPIを持つことが可能ですが、プライマリ インデックスを持たないことも可能です。
  • 既存のCHECK制約は、transaction-time次元のCURRENT制約になります。その他のタイプの制約が存在すると、エラーが報告されます。テンポラル テーブルに対する制約の使用を参照してください。
  • テーブルをtransaction-timeテーブルにする前に、そのテーブルに定義されたすべての結合インデックスを削除する必要があります。
  • テーブルは既存のトリガーの対象テーブルであってはなりません。
  • テーブルを参照している既存のビュー、マクロ、またはトリガーされるアクション文で、transaction-time修飾子を指定していない文は、transaction-time修飾子を追加するための変更が必要です。

実行中のストアド プロシージャに変更対象のテーブルを参照するSQL文が含まれていて、そのSQLで明示的な修飾子が指定されていない場合には、コンパイル時の修飾子がSQLに適用されます。

テーブルが空の場合を除き、追加したtransaction-time列でパーティション化するようにテーブルの行パーティションを変更することはできません。