テーブルのすべてまたは一部をコピーする構文であるCREATE TABLE ... ASを使用して、ソース テンポラル テーブルからテンポラル テーブルまたは非テンポラル テーブルを作成できます。CREATE TABLE ... ASの構文は、テンポラルまたは非テンポラルのソース テーブルのどちらで使用される場合も同じです。構文については、<Teradata Vantage™ SQLデータ定義言語-構文規則および例、B035-1144>で詳細に説明しています。ただし、テンポラル ソース テーブルの使用に特有の次の情報に注意してください。
- テンポラル テーブルのAS subquery がテンポラル修飾子なしで使用される場合、セッションに対して設定されているデフォルトのテンポラル修飾子が、subquery に対して使用されます。
- CREATE TABLE ...AS文でテーブルに定義される新しい列は、VALIDTIMEまたはTRANSACTIONTIME列にはなりません。
- ソース テーブルがvalid-time列を持つテンポラル テーブルである場合、作成されるターゲット テーブルは、valid-time列を持つテンポラル テーブルです。この場合、次のルールが適用されます。
- WITH DATAがCREATE TABLE ... AS文で指定される場合、valid-time列の値がターゲット テーブルにコピーされます。
- ターゲット テーブルを列レベルまたはテーブル レベルのテンポラル制約を使用して作成できます。有効時間があるテーブルでは、プライマリキーと固有性制約は、システム定義結合インデックス(SJI)を自動的に作成します。これらの制約のタイプは、WITH NO DATAオプションが使用されている場合にのみ、CREATE TABLE ... AS文のターゲット テーブルで定義できます。(NONSEQUENCED VALIDTIMEプライマリキーと固有性制約は非テンポラル テーブルとして機能し、SJIではなく固有副次インデックスを作成します。)
- ソース テーブルがtransaction-time列を持つテンポラル テーブルである場合、作成されるターゲット テーブルは、transaction-time列を持つテンポラル テーブルです。この場合、次のルールが適用されます。
- transaction-time値は、NONTEMPORAL修飾子がCREATE TABLE ...ASとともに使用された場合にのみ、ターゲット テーブルにコピーされます。(NONTEMPORAL権限は、NONTEMPORAL修飾子を使用する場合に必要とされます。) NONTEMPORAL修飾子は、ソース テーブルにtransaction-time列がない場合は無視されます。
- NONTEMPORAL修飾子が使用されない場合、ターゲット テーブルのtransaction-timeの値はデフォルトで(TEMPORAL_TIMESTAMP,UNTIL_CLOSED)になります。
- ターゲット テーブルを列レベルまたはテーブル レベルのテンポラル制約を使用して作成できます。これらの制約は、オープン行にのみ適用できます。transaction-timeを伴うターゲット テーブルでは、WITH NO DATAオプションが使用されている場合、プライマリキーと固有性制約のみ可能です。