応用情報技術者試験 応用情報技術者試験 令和7年度春期 午前 問27: SQL 文に示す参照制約が存在する“商品”表と“受注”表とがある。“商品”表の行を削除したとき,削除した行の商品コードと同じ値の商品コードをもつ“受注”表の行を
SQL 文に示す参照制約が存在する“商品”表と“受注”表とがある。“商品”表の行を削除したとき,削除した行の商品コードと同じ値の商品コードをもつ“受注”表の行を自動的に削除する SQL 文として,a に入れる字句はどれか。
〔SQL 文〕
CREATE TA 商品 (
商品コード CHAR(4) PRIMARY KEY ,
商品名 VARCHAR(64)
)
CREATE TABLE 受注 (
受注番号 INTEGER PRIMARY KEY ,
商品コード CHAR(4) ,
受注個数 INTEGER ,
納品日 CHAR(8) ,
FOREIGN KEY (商品コード) REFERENCES 商品(商品コード)
ON DELETE a
)
51.49%
問題本文
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
- イ.RESTRICT
- ウ.SET DEFAULT
- エ.SET NULL
解説
ON DELETE は、参照先(親=商品表)の行が削除されたとき、それを参照する子表(受注表)の行をどう扱うかを指定する句です。親の削除に連動して、同じ値を参照する子表の行も自動的に削除させたい場合は CASCADE(カスケード)を指定します。問題の要求どおりの動作になるため、正解はアです。
選択肢ごとの解説
- ア.CASCADE は親行の削除に連動して、それを参照する子行も自動的に削除します。要求どおりの動作になるため正解です。
- イ.RESTRICT は参照している子行が存在する間は親行の削除をエラーとして拒否します。子行を自動削除する動作ではないため誤りです。
- ウ.SET DEFAULT は親行削除時に子行の外部キーを既定値(DEFAULT)に変更するだけで、子行は削除されないため誤りです。
- エ.SET NULL は親行削除時に子行の外部キーを NULL に設定するだけで、子行自体は残るため、自動削除という要求に合わず誤りです。
応用情報技術者試験 令和7年度春期 午前 の過去問一覧へ戻る・問27