PostgreSQL 的唯一索引
索引也可以用于强制列值的唯一性,或者多个列组合值的唯一性。
1 | CREATE UNIQUE INDEX name ON table (column [, ...]) [ NULLS [ NOT ] DISTINCT ]; |
目前,只有 B-tree 索引可以声明为唯一。
当索引被声明为唯一时,不允许表中有多个行具有相同的索引值。默认情况下唯一列中的空值不被视为相等,因此允许列中存在多个空值。NULLS NOT DISTINCT
选项修改了这一点,并使索引将空值视为相等。一个多列唯一索引只会拒绝所有索引列在多个行中都相等的情况。
当为表定义唯一约束或主键时,PostgreSQL 会自动创建一个唯一索引。该索引覆盖组成主键或唯一约束的列(如果适用,是一个多列索引),并且是强制执行该约束的机制。
相关链接
PostgreSQL: Documentation: 16: 11.6. Unique Indexes
OB links
OB tags
#PostgreSQL
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 z2huo!
评论