foreign_key_definition

4D - Documentation   Fran溝is   English   German   日本語   4D SQL Reference目次   4D SQL Referenceインデックス   Back   Previous   Next

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   Fran溝is   English   German   日本語   4D SQL Reference目次   4D SQL Referenceインデックス   Back   Previous   Next