DBOnline

PRIMARY KEY制約

広告

制約の1つであるPRIMARY KEY制約の使い方について解説します。カラムにPRIMARY KEY制約を設定した場合、そのカラムが主キーであることを示します。

1.PRIMARY KEY制約とは
2.PRIMARY KEY制約を設定した例

書式は次の通りです。PRIMARY KEY制約を設定したいカラムの後に「PRIMARY KEY」と記述して下さい。

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

例えば次のように記述します。

create table product(id integer primary key, name text);

また複数のカラムの組み合わせに対して主キーを設定する場合には次の書式も利用できます。

CREATE TABLE テーブル名(カラム名1, カラム名2, ... ,
  PRIMARY KEY(カラム名1, カラム名2, ...));

例えば次のように記述します。

create table friend(name text, old int, address text, primary key(name, old));

PRIMARY KEY制約が設定されたカラムには重複した値を格納することはできません。ただしnullは複数のカラムに格納が可能です。複数のカラムを組み合わせたものにPRIMARY KEY制約が設定されている場合は、複数のカラムに格納された値と同じ組み合わせの値を格納することはできません。

簡単な例で確認してみます。次のようなテーブルを作成しました。

create table user(id int primary key, name text);

p6-1

今回は「id」カラムにPRIMARY KEY制約を設定しているため、「id」カラムには重複した値を格納することができません。既に他のデータで格納されているのと同じ値を持つデータを格納しようとすると「Error: UNIQUE constraint failed: user.id」と表示されます。

p6-2

上記の場合は既に「id」カラムに「1」が入っているデータが格納されているのに、「id」カラムに同じ「1」を持つデータを新しく追加しようとしたためにエラーとなりました。

( Written by Tatsuo Ikura )