参照動作(CASCADE・RESTRICT・SET NULL)とは?
参照動作(CASCADE・RESTRICT・SET NULL)とは、参照される側の行が削除・更新されたときに、参照する側をどう扱うかの指定。CASCADEは子行も連鎖して削除・更新、RESTRICT(NO ACTION)は子行があれば操作を拒否、SET NULLとSET DEFAULTは子の外部キー列をNULLや既定値に置き換える。
高度試験・午前I(全区分共通)の過去問では1回出題されています。
さんしょうどうさかすけーどりすとりくとせっとぬる
参照動作(CASCADE・RESTRICT・SET NULL)の意味
参照される側の行が削除・更新されたときに、参照する側をどう扱うかの指定。CASCADEは子行も連鎖して削除・更新、RESTRICT(NO ACTION)は子行があれば操作を拒否、SET NULLとSET DEFAULTは子の外部キー列をNULLや既定値に置き換える。
参照動作(CASCADE・RESTRICT・SET NULL)の具体例
受注ヘッダと受注明細のように親が消えたら子も無意味になる関係はCASCADEが自然。逆に顧客と受注は、顧客を消しても受注履歴を残す必要があるためRESTRICTにして論理削除フラグで運用する。部署と社員なら異動待ちを表すSET NULLが合う。
参照動作(CASCADE・RESTRICT・SET NULL)は試験でどう引っ掛けられる?
CASCADEは連鎖が何段にも波及するため、1行の削除が想定外の大量削除やロック待ちを招く。また外部キー列にNOT NULLが付いているとSET NULLは実行時エラーになるので、制約の組合せを確認する必要がある。
参照動作(CASCADE・RESTRICT・SET NULL)と関連する用語
参照動作(CASCADE・RESTRICT・SET NULL)が出た過去問
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。