我们如何在postgres中为独特约束添加聚簇/非聚簇索引,SQL Server中的等效脚本如下所示,我们如何实现postgres
CREATE TABLE tbl1(
col1 int,
col2 int,
col3 int,
CONSTRAINT UK_tbl1 UNIQUE NONCLUSTERED
(
col1 ASC,
col2 ASC
))
任何有关索引唯一约束列的帮助都将受到赞赏。
答案 0 :(得分:2)
PostgreSQL没有“聚集索引”的概念,因为MS-SQL使用该术语。我的理解是,在MS-SQL中,“聚簇索引”使表成为面向索引的表,其中整个表是b树结构的。 PostgreSQL无法做到这一点。
它可以执行仅索引扫描,这有点像扫描覆盖索引。
它还有CLUSTER
命令,它按索引的顺序对表进行一次性排序和重写。但它没有维护那个排序。
与MS-SQL的聚簇索引不同,它无法避免存储表堆,也无法将表保存在b树中。
答案 1 :(得分:1)
来自docs:
添加唯一约束将自动创建唯一的btree 对约束中使用的列或列组的索引。