17.10 - 例: 列パーティション テーブルへの外部キーの追加 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

テーブル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;