如何在postgres中使用具有唯一约束的聚类?

时间:2014-03-24 13:23:21

标签: sql-server postgresql

我们如何在postgres中为独特约束添加聚簇/非聚簇索引,SQL Server中的等效脚本如下所示,我们如何实现postgres

CREATE TABLE tbl1(
col1 int,
col2 int,
col3 int,
CONSTRAINT UK_tbl1 UNIQUE NONCLUSTERED 
(
col1 ASC,
col2 ASC
))

任何有关索引唯一约束列的帮助都将受到赞赏。

2 个答案:

答案 0 :(得分:2)

PostgreSQL没有“聚集索引”的概念,因为MS-SQL使用该术语。我的理解是,在MS-SQL中,“聚簇索引”使表成为面向索引的表,其中整个表是b树结构的。 PostgreSQL无法做到这一点。

它可以执行仅索引扫描,这有点像扫描覆盖索引

它还有CLUSTER命令,它按索引的顺序对表进行一次性排序和重写。但它没有维护那个排序。

与MS-SQL的聚簇索引不同,它无法避免存储表堆,也无法将表保存在b​​树中。

答案 1 :(得分:1)

来自docs

  

添加唯一约束将自动创建唯一的btree   对约束中使用的列或列组的索引。