sqlite ユニークindexを作成する

sqlite ユニークindexを作成する

sqliteで、ユニークindexを作成する手順を記述してます。「CREATE UNIQUE INDEX」にインデックス名を指定することで可能です。sqliteは、3.37.1を使用してます。

環境

  • OS windows11 home
  • sqlite 3.37.1
  • DB Browser for SQLite 3.12.2

手順

重複を許さない「ユニークindex」を作成するには、「CREATE UNIQUE INDEX」を使用します。

CREATE UNIQUE INDEX インデックス名 ON テーブル名(カラム名, カラム名, ...);

実際に、以下のテーブル「sampletbl」のカラム「id」に「ユニークindex」を作成してみます。

レコード

作成します。

CREATE UNIQUE INDEX uidx ON sampletbl(id);

実行結果

これで、ユニークindexが作成されました。

重複データ挿入

ユニークindexに指定したカラム「id」に重複データを挿入してみます。

insert into sampletbl values(3, 'sabu');

結果: UNIQUE constraint failed: sampletbl.id

実行結果は、エラーとなります。

既存テーブル

既存のテーブルにすでに重複データが存在するカラムに、ユニークindexを指定することはできません。

既に「id」が重複している以下の「sampletbl」の「id」にユニークindexを作成してみます。

作成してみます。

CREATE UNIQUE INDEX uidx2 ON sampletbl(id);

結果: UNIQUE constraint failed: sampletbl.id

実行結果をみるとエラーになっていることが確認できます。

DB Browser for SQLite

DB Browser for SQLiteからも、ユニークindexは作成可能です。

「データベース構造」から「インデックスの作成」をクリックします。

名前を入力して、一意にチェックを入れて、カラムを選択することで作成が可能です。