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

出典:令和元年度 秋期 応用情報技術者試験 午前 問27
- アCASCADE
- イINTERSECT
- ウRESTRICT
- エUNIQUE
正解:ア
解説
外部キーを定義する際の参照動作として ON DELETE 句を指定します。CASCADE を指定すると,被参照表(“注文” 表)の行が削除されたとき,その行を参照している “注文明細” 表の行も連鎖的に削除されます。図の破線の下線は外部キーを表し,“注文明細” の注文番号が “注文” の主キーを参照しています。
選択肢ごとの解説
- ア正しい。ON DELETE CASCADE を指定すると,親表の行削除に連動して子表の該当行も自動的に削除されます。
- イ誤り。INTERSECT は二つの問合せ結果の共通部分を求める集合演算子であり,参照動作の指定には使えません。
- ウ誤り。RESTRICT は,参照している行が存在する場合に親表の行削除を拒否する動作で,自動削除とは逆の指定です。
- エ誤り。UNIQUE は列の値の一意性を保証する制約であり,削除時の連鎖動作とは無関係です。