sqlite unique制約を設定する

sqlite unique制約を設定する

sqliteで、unique制約を設定する手順を記述してます。「unique」を使用します。「DB Browser for SQLite」から設定する手順も記述してます。sqliteは、3.37.1を使用してます。

環境

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

手順

重複したデータの挿入を許可しない「unique」を設定するには、「unique」を指定します。

CREATE TABLE テーブル名(カラム名 integer unique, ...);

実際に、以下の「hoge」というテーブルのカラム「id」を「unique」に設定してみます。

CREATE TABLE hoge(id integer unique, name text);

実行結果

重複データ挿入

「id」に重複したデータ挿入を挿入してみます。

insert into hoge values(1, 'taro');
insert into hoge values(2, 'jiro');
insert into hoge values(1, 'saburo'); -- エラー発生

結果: UNIQUE constraint failed: hoge.id

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

null挿入

nullは重複してもエラーとなりません。

insert into hoge values(NULL, 'saburo');
insert into hoge values(NULL, 'siro');

実行結果

DB Browser for SQLite

GUIツール「DB Browser for SQLite」からだと、テーブル作成時に「U」にチェックを入れると「unique」となります。

「テーブルを作成」をクリックします。

対象のカラムの「U」にチェックを入れると「NOT NULL」となります。