SQLite3でのUNIQUEインデックス
auです。
今回は、インデックスを使用する際に、重複しないように制限する、「UNIQUE(ユニーク)」をインデックスを作る際に付けようと思います。
ユニークを付けてインデックスを作成する
インデックスを作成するにはテーブルが必要なので、いつも通りテーブルを準備します。
SELECT * FROM user; id name address CULUMN ---------- ---------- ---------- ---------- 1 Sato 東京 2 Tanaka 神奈川 3 Saito 埼玉 4 Goto 群馬 5 Oishi 東京
このテーブルをもとに、ユニークインデックスを作成します。
CREATE UNIQUE INDEX インデックス名 ON テーブル名(カラム1, カラム2...);
実際に作成してみます。
CREATE UNIQUE INDEX unique_index ON user(id);
idは重複していないので作成できます。次に、「東京」が重複しているaddressを作ってみたいと思います。
CREATE UNIQUE INDEX unuque_index3 ON user(address); Error: UNIQUE constraint failed: user.address
Errorとでてaddressは作成することができませんでした。
まとめ
UNIQUEは複数のカラムを重複しないようにできるので、PRIMARY KEYのようなものということがわかりました。違いについても知りたくなりました。