例: 列パーティション テーブルへの外部キーの追加 - Teradata Database - Teradata Vantage NewSQL Engine - 例: 列パーティション テーブルへの外部キーの追加、ALTER TABLE SQL文。

Teradata Vantage™ SQLデータ定義言語 構文規則および例

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

テーブルpおよびcを定義した後で、テーブル レベルの外部キー制約を使用して列パーティション テーブルcがテーブルpを参照する、これらのテーブルの間の外部キーの関係を追加することにします。

cに次の定義があるとします。

     CREATE TABLE c (
       c1  INTEGER, 
       cb  INTEGER, 
       cd1 DATE, 
       cc2 CHARACTER(30))
     PARTITION BY (COLUMN,
                   RANGE_N(cd1 BETWEEN DATE '2006-01-01' 
                               AND     DATE '2020-12-31'
                               EACH INTERVAL '1' MONTH));

pに次の定義があるとします。

     CREATE TABLE p (
       p1  INTEGER, 
       pb  INTEGER NOT NULL UNIQUE, 
       pc1 CHARACTER(10))
     PRIMARY INDEX (p1);

次のALTER TABLE文の実行を依頼して、列c.cbが列p.pbを参照するテーブルcに、必要なテーブルレベルの外部キー制約を追加します。

     ALTER TABLE c ADD FOREIGN KEY (cb) REFERENCES p (pb);

この外部キーは、参照元のテーブルと参照先のテーブルの単一列の間の関係のみを定義するため、次のように列レベルの制約として定義することができます。

     ALTER TABLE c ADD cb REFERENCES p (pb);

これらのALTER TABLE文はどちらも、次のエラー テーブル定義を生成します。

     CREATE TABLE c_0 (
       c1  INTEGER, 
       cb  INTEGER, 
       cd1 DATE, 
       cd2 CHARACTER(30))
     NO PRIMARY INDEX;