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は作成可能です。
「データベース構造」から「インデックスの作成」をクリックします。
名前を入力して、一意にチェックを入れて、カラムを選択することで作成が可能です。
-
前の記事
kotlin エラー「error: expecting a top level declaration」の解決方法 2023.03.22
-
次の記事
Dart 真偽値をランダムで発生させる 2023.03.22
コメントを書く