今回は、Silverの「開発/SQL - インデックス」からの出題です。
ALTER TABLE sample ADD UNIQUE INDEX ON id;
ALTER TABLE sample ALTER COLUMN id UNIQUE;
ALTER TABLE sample ADD UNIQUE(id);
CREATE UNIQUE INDEX ON sample(id);
CREATE INDEX sample_id_unique ON sample(id);
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2014年10月1日
一意のインデックスはCREATE UNIQUE INDEXで作成しますが、CREATE TABLEあるいはALTER TABLEでPRIMARY KEYあるいはUNIQUE制約を付与した場合も、自動的に一意のインデックスが作成されます。
ALTER TABLEでは、ALTER COLUMNにより列の属性(データ型、デフォルト値など)を変更することはできますが、Bのようにして列のUNIQUE制約を追加することはできません。Cのようにテーブルの制約として追加するのが正しい構文です。
CREATE INDEXは、DもEも正しい構文ですが、一意のインデックスが作られるのはDです。Eはインデックスの名前をsample_id_uniqueとしていますが、インデックス自体はUNIQUEになりません。
従って、正解はCとDです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.