我們怎樣才能加入Postgres的聚集/非聚集索引到唯一約束,在SQL Server相當於腳本如下,我們如何才能實現呢Postgres的如何在postgres中使用具有唯一約束的羣集?
CREATE TABLE tbl1(
col1 int,
col2 int,
col3 int,
CONSTRAINT UK_tbl1 UNIQUE NONCLUSTERED
(
col1 ASC,
col2 ASC
))
用於索引唯一約束列可以理解的任何幫助。
我們怎樣才能加入Postgres的聚集/非聚集索引到唯一約束,在SQL Server相當於腳本如下,我們如何才能實現呢Postgres的如何在postgres中使用具有唯一約束的羣集?
CREATE TABLE tbl1(
col1 int,
col2 int,
col3 int,
CONSTRAINT UK_tbl1 UNIQUE NONCLUSTERED
(
col1 ASC,
col2 ASC
))
用於索引唯一約束列可以理解的任何幫助。
PostgreSQL沒有「聚簇索引」的概念,因爲MS-SQL使用該術語。我的理解是,在MS-SQL中,「聚簇索引」使表成爲索引導向表,其中整個表是b樹結構化的。 PostgreSQL不能做到這一點。
它可以做僅索引掃描,這工作有點像的掃描覆蓋指數。
它也有CLUSTER
命令,它按照索引的順序對錶進行一次性排序和重寫。但它沒有保持那個排序。
但是,與MS-SQL的聚簇索引不同,它無法避免存儲表堆,並且無法在B樹中維護表。
詢問[dba.stackexchange.com](http://dba.stackexchange.com)中的存儲參數。我正在投票遷移問題。 –
Postgres沒有聚集索引。所以只需創建一個常規的唯一索引(或唯一約束)。 –
@Clodoaldo Neto我剛剛編輯的問題,這不是必需的postgres,需要羣集幫助 – RAFIQ