AP過去問 令和7年度春期 午前 問27
AP過去問 令和7年度春期 午前 問26前の問題へ
AP過去問 令和7年度春期 午前 問28次の問題へ
問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
イ RESTRICT
ウ SET DEFAULT
エ SET NULL
回答・解説
アは✅正しいです。CASCADE
- →適切です。CASCADEは、親表(この場合は商品表)の行が削除されたときに、それに参照されている子表(この場合は受注表)の行も連動して自動的に削除されるように指定するオプションです。
つまり、ある商品コードの商品を削除すると、それを参照している受注のレコードも同時に削除されます。
イは❌間違いです。RESTRICT
- →不適切です。RESTRICTは、親表の行を削除しようとしたときに、子表でその値を参照している行が存在する場合、削除を拒否する設定です。したがって、自動で削除されることはありません。
ウ❌間違いです。SET DEFAULT
- →不適切です。SET DEFAULTは、親表の行が削除された場合に、子表の参照している列の値をその列に設定されたデフォルト値に変更する動作です。ただし、この操作を使うには、子表のその列にDEFAULTが設定されている必要があります。
エ❌間違いです。SET NULL
- →不適切です。SET NULLは、親表の行が削除されたときに、子表の参照している列の値をNULLに設定する動作です。ただし、子表のその列がNULLを許容している必要があります。削除連鎖は行われません。
したがって
ア
が答えです。
AP過去問 令和7年度春期 午前 問26前の問題へ
AP過去問 令和7年度春期 午前 問28次の問題へ