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