foreign_key_definition

4D - Documentation   French   English   German   日本語   4D SQL Referenceコマンドテーマリスト   4D SQL Referenceインデックス   戻る   前   次

version 11


CONSTRAINT sql_name

FOREIGN KEY (column_reference, ... , column_reference)

REFERENCES sql_name [(column_reference, ... , column_reference)]

[ON DELETE {RESTRICT |CASCADE}]

[ON UPDATE {RESTRICT |CASCADE}]

説明

foreign_key_definitionは、データ整合性を確実にする目的で、他のテーブルに設定された主キーフィールド (column_reference) に一致させるために使用します。FOREIGN KEY制約は、(他のテーブルの主キーに一致する) 外部キーとして定義されるカラム参照 (column_reference)を渡すために使用されます。

CONSTRAINT sql_name 句は、FOREIGN KEY制約に名前をつけるために使用します。

続くREFERENCES句は、一致する他のテーブル (sql_name) の主キーフィールドソースを指定します。REFERENCES句で指定されるテーブル (sql_name) が、外部キー制約に一致するキーとして使用される主キーを持つ場合、column_referenceリストを省略できます。

オプションのON DELETE CASCADE句は、(主キーフィールドを含む) 親テーブルからローが削除された時、(外部キーフィールドを含む) 子テーブルの関連するローも削除することを指定します。オプションのON DELETE RESTRICT句を渡すと、他のテーブルが参照するデータが削除されることを防ぎます。

オプションのON UPDATE CASCADE句は、(主キーフィールドを含む) 親テーブルでローが更新されると、(外部キーフィールドを含む) 子テーブルの関連するローも更新されることを指定します。オプションのON UPDATE RESTRICT句を渡すと、他のテーブルが参照するデータが更新されることを防ぎます。

ON DELETEON UPDATE両方の句が渡されるとき、両方は同じタイプでなければなりません (例. ON DELETE CASCADEON UPDATE CASCADE、またはON DELETE RESTRICTON UPDATE RESTRICT)。

ON DELETEON UPDATE句どちらも渡されないとき、CASCADEがデフォルトルールとして使用されます。

例題

この例題はORDERSテーブルを作成し、Customer_SIDカラムを、CUSTOMERS テーブルのSIDカラムが割り当てられる外部キーとして設定します:

   CREATE TABLE ORDERS
    (Order_ID INT32,
    Customer_SID INT32,
   Amount NUMERIC,
   PRIMARY KEY (Order_ID),
   FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER(SID));

参照

ALTER TABLE, column_reference, primary_key_definition.


4D - Documentation   French   English   German   日本語   4D SQL Referenceコマンドテーマリスト   4D SQL Referenceインデックス   戻る   前   次