UNIQUE制約

カラムにUNIQUE制約を設定した場合、そのカラムの値として重複した値を格納することができなくなります。書式は次の通りです。

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

CREATE TABLE文を実行する時にカラムにUNIQUEを指定するとそのカラムには重複した値を格納できません。また下記の書式も使用できます。

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

カラムに対して直接UNIQUEを指定する代わりにに UNIQUE(カラム名) の形式で対象のカラムを指定します。この書式の場合は複数のカラムを組み合わせてユニークになるように設定できます。

具体的には次のように記述します。

create table product(id integer, name text UNIQUE);
create table employee(name text, section text, UNIQUE(name, section));

サンプル

では実際に試してみます。

p11-1

「product」テーブルを作成し、「name」カラムにUNIQUE制約を設定しました。

ではデータをいくつか追加してみます。

p11-2

UNIQUE制約が設定されたカラムに重複した値を格納しようとすると「SQL error: column name is not unique」とエラー表示されます。