過去問解きまくり研究所 ホーム

令和7年度 春期 午前 問27

データベース

参照制約に関する問題

SQL 文に示す参照制約が存在する“商品”表と“受注”表とがある。“商品”表の行を削除したとき,削除した行の商品コードと同じ値の商品コードをもつ“受注”表の行を自動的に削除する SQL 文として,a に入れる字句はどれか。

〔SQL 文〕

CREATE TABLE 商品 (
    商品コード    CHAR(4) PRIMARY KEY ,
    商品名        VARCHAR(64)
)

CREATE TABLE 受注 (
    受注番号      INTEGER PRIMARY KEY ,
    商品コード    CHAR(4) ,
    受注個数      INTEGER ,
    納品日        CHAR(8) ,
    FOREIGN KEY (商品コード) REFERENCES 商品(商品コード)
    ON DELETE 〔 a 〕
)
答えと解説を見る

✓ これが正解アCASCADE

解説

親の行を消したら子の行も一緒に消す指定を入れます。

外部キーに添える削除時の動作の指定は、参照される側の表の行が消えたときに、その行を指していた側の行をどう扱うかを決めるものです。扱い方はおおまかに三つに分かれます。指していた行ごと連鎖して消してしまうか、指している行が残っているあいだは親の削除そのものを認めないか、あるいは行は残したまま参照していた列の値だけを別の値に置き換えるかです。設問が求めているのは、商品の表の行を削除したときに、同じ商品コードをもつ受注の表の行も自動的に消えるという振る舞いでした。これは一番目の扱いにあたるので、連鎖して削除することを表す字句を入れることになります。残りの三つの字句は、いずれも受注の表の行そのものは残す側か、削除を止める側にあたります。

ほかの選択肢はなぜ違うのか

出典:令和7年度 春期 応用情報技術者試験 午前 問27

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)