図のような関係データベースの“注文”表と“注文明細”表がある。“注文”表の行を削除すると、対応する“注文明細”表の行が、自動的に削除されるようにしたい。SQL文の
ON DELETE 句に指定する語句はどれか。ここで、図中の実線の下線は主キーを、破線の下線は外部キーを表す。
注文
┌────┬────┬────┐
│注文番号│ 注文日 │顧客番号│
└────┴────┴────┘
注文明細
┌────┬────┬────┬────┐
│注文番号│明細番号│商品番号│ 数量 │
└────┴────┴────┴────┘
ア CASCADE
イ INTERSECT
ウ RESTRICT
エ UNIQUE
ア
ア 正しい。CASCADEを指定すると、参照される行が削除されると、参照する外部キーを含む行も削除される。また、参照される行のキーの値 (例えば注文番号) が変更されると、参照する外部キーの値 (注文明細表の注文番号) も更新される。
イ INTERSECTは、2つの表のどちらにも存在する行を抽出する。
ウ RESTRICTは、整合制約が保てない削除や更新をエラーとする。
エ UNIQUEは、対象となる列に格納される値が、表内で重複しないように制約する。
問26 | 目次 | 問28 |