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