ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
||||||||||||||
|
4D v20 R7
foreign_key_definition
|
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 DELETEとON UPDATE両方の句が渡されるとき、両方は同じタイプでなければなりません (例. ON DELETE CASCADEとON UPDATE CASCADE、またはON DELETE RESTRICTとON UPDATE RESTRICT)。
ON DELETEとON 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));
プロダクト: 4D
テーマ: シンタックスルール
SQLリファレンス ( 4D v20 R7)