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