索引、シノニムおよびシーケンスの管理複数選択23

索引に関して正しい記述はどれですか。

A表をDROPすると、その表に作成されていた索引も自動的に削除される
B表をTRUNCATEすると、その表の索引も削除される
C1つの表に対して複数の索引を作成できる
D同じ列・同じ順序の組み合わせで複数の索引を作成できる
E索引を削除すると、対応する表のデータも削除される
解説正答:A・C

索引は表に従属するオブジェクトです。表とのライフサイクルの関係を押さえるのがポイントです。

各選択肢の検討:

  • A(正)DROP TABLE を実行すると、その表の索引・制約もまとめて削除される。
  • B(誤)TRUNCATE TABLE行を削除するが構造は保持 する。索引の定義は残り、空の状態になるだけ。
  • C(正):1つの表に複数の索引を作成できる(異なる列や列の組み合わせに対して)。
  • D(誤)まったく同じ列・同じ順序 の組み合わせに対して、複数の索引は作成できない(ORA-01408: そのような列リストはすでに索引付けされています)。
  • E(誤):索引を DROP しても、表のデータには影響しない。索引は検索高速化のための補助構造にすぎない。

DROP と TRUNCATE の比較:

操作行データ表構造索引
DROP TABLE削除削除削除
TRUNCATE TABLE削除保持保持