令和元年度秋期 応用情報技術者試験 午前 問27
図のような関係データベースの“注文”表と“注文明細”表がある。“注文”表の行を削除すると,対応する“注文明細”表の行が,自動的に削除されるようにしたい。SQL 文の ON DELETE 句に指定する語句はどれか。ここで,図中の実線の下線は主キーを,破線の下線は外部キーを表す。

- ア CASCADE
- イ INTERSECT
- ウ RESTRICT
- エ UNIQUE
解答・解説を見る
正解:ア
AI解説
外部キー制約のON DELETE句にCASCADEを指定すると、親表(この場合“注文”表)の行が削除された際に、それを参照している子表(“注文明細”表)の対応する行も連動して自動的に削除される。 ア: CASCADEは親表の行削除に連動して子表の対応行を自動的に削除する指定であり、設問の要件を満たすため正解である。 イ: INTERSECTは2つの問合せ結果の積集合を求める集合演算子であり、削除時の連動動作を指定するON DELETE句の値ではない。 ウ: RESTRICTは参照されている行がある場合に親表の削除自体を制限(禁止)する指定であり、子表の行を自動削除するものではないため設問の要件を満たさない。 エ: UNIQUEは列の値の一意性を保証する制約であり、削除時の連動動作とは関係ないためON DELETE句の指定値として不適切である。 💡 ON DELETE句の代表的な指定にはCASCADE(連動削除)、RESTRICT/NO ACTION(削除を制限)、SET NULL(外部キーをNULLに設定)があり、それぞれの動作の違いを整理して覚えておく。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。