参照動作(CASCADE・RESTRICT・SET NULL)とは?
参照動作(CASCADE・RESTRICT・SET NULL)とは、参照される側の行が削除・更新されたときに、参照する側をどう扱うかの指定。CASCADEは子行も連鎖して削除・更新、RESTRICT(NO ACTION)は子行があれば操作を拒否、SET NULLとSET DEFAULTは子の外部キー列をNULLや既定値に置き換える。
データベーススペシャリスト試験の過去問では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)が出た過去問
図のような関係データベースの"注文"表と"注文明細"表がある。"注文"表の行を削除すると、対応する"注文明細"表の行が、自動的に削除されるようにしたい。参照制約…
正解:CASCADE
要点:親削除に子も連動させる削除規則はCASCADE
参照制約の削除規則で、親表の行が削除されたときに、それを参照している子表の行も連鎖して削除させる指定がCASCADEである。この設問では注文が親、注文明細が子にあたるので、注文の行を消すと対応する明細も自動的に消える。参照している行があれば削除を拒否する指定はRESTRICTで、これとは逆の動きになる。
出典:令和7年度 秋期 データベーススペシャリスト試験 am2 問11(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。