OnDelete (外部キーのキーワード)
使用法
外部テーブルの参照されているレコードが削除されたときに、現在のテーブルで実行するアクションを指定するには、以下の構文を使用します。
ForeignKey keyname(key_props) References pkg.class(ref_index) [ OnDelete = ondelete ];
ondelete は以下のいずれかになります。
-
noaction (既定値) — 外部テーブルの参照されているレコードの削除を試みた場合、失敗します。
-
cascade — 外部テーブルの参照されているレコードを削除した場合、そのテーブル内の参照元レコードも削除されます。
-
setdefault — 外部テーブルの参照されているレコードを削除した場合、参照元レコードの外部テーブルへの参照はその既定値に設定されます。
-
setnull — 外部テーブルの参照されているレコードを削除した場合、参照元レコードの外部テーブルへの参照は NULL に設定されます。
説明
外部テーブル内の行を削除する場合、その外部テーブルに外部キー制約が設定されているすべての参照元テーブルで、削除する行を参照している行があるかどうかがチェックされます。このような参照が見つかった場合、OnDelete アクションは有効になります。
既定値
既定値は noaction です。
関連項目
-
このドキュメントの “外部キー定義”
-
"クラスの定義と使用" の “外部キーの使用法”
-
"クラスの定義と使用" の “コンパイラ・キーワードの概要”
-
"InterSystems SQL リファレンス" の “外部キーの定義”