sqlite プライマリーキーを設定する

sqlite プライマリーキーを設定する

sqliteで、プライマリーキーを設定する手順を記述してます。create table時に「プライマリーキー」に指定したいカラムに「primary key」と指定すれば設定可能です。sqliteは、3.37.1を使用してます。

環境

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

手順

プライマリーキーを設定するには、「primary key」を使用します。

CREATE TABLE テーブル名(カラム名 PRIMARY KEY);

実際に、「hoge」というテーブルに「プライマリーキー」を設定してみます。

CREATE TABLE hoge(id integer, name text primary key);

実行結果

「name」に対して、同じ値をinsertするとエラーになることが確認できます。

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

結果: UNIQUE constraint failed: hoge.name

実行結果

また、「null」の場合はキー違反にはなりません。

insert into hoge values(3, null);
insert into hoge values(4, null);
insert into hoge values(5, null);

実行結果

integer型をプライマリーキーに指定

integer型をプライマリーキーにしたテーブル「huge」を作成してみます。

CREATE TABLE huge(id integer primary key, name text);

同じ「id」を、「insert」すると同様にエラーとなります。

insert into huge values(1, 'taro');
insert into huge values(2, 'jiro');
insert into huge values(1, 'taro');

実行結果

ただし、「name」に「null」をinsertした場合は「id」の値はオートインクリメントされます。

insert into hoge values(null, 'taro');
insert into hoge values(null, 'taro');
insert into hoge values(null, 'taro');

実行結果