auの日記

プログラミング初心者の日記。(auはハンドルネームです)

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のようなものということがわかりました。違いについても知りたくなりました。