8.4. 一意インデックス

インデックスは、列値の一意性や、複数列を結合した値の一意性を強制するためにも使用できます。

CREATE UNIQUE INDEX name ON table (column [, ...]);

現在、一意インデックスとして作成できるのは B-tree インデックスのみです。

一意インデックスが作成された場合、同じインデックス値を有する複数のテーブル行は許されなくなります。 NULL 値は同じ値とはみなされません。

PostgreSQL では、テーブルに一意性制約またはプライマリキーが宣言されると、その制約を強制するために、一意とする列やプライマリキーとする列 (場合によっては複数列インデックス) に一意インデックスを自動的に作成します。 一意性制約を追加するために、一意インデックスを後からテーブルに追加することもできます。

Note: テーブルに一意性制約を追加するには、ALTER TABLE ... ADD CONSTRAINT を使用する方が適切です。 一意性制約を課すためのインデックスの用法は、直接アクセスしてはならない実装の詳細とみなされることがあります。