11.6. 唯一索引

索引还可以用于强制一列的值的唯一性,或多个列的组合值的唯一性。

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

当前,仅 B 树索引可以声明为唯一。

当索引被声明为唯一时,不允许具有相等索引值的多个表行。空值不视为相等。多列唯一索引只会拒绝多行中所有索引列均相等的情况。

当为表定义唯一约束或主键时,PostgreSQL 自动创建唯一索引。索引涵盖构成主键或唯一约束(多列索引,如果适用)的列,并且是强制执行约束的机制。

Note

无需在唯一列上手动创建索引;这样做只会复制自动创建的索引。