Postgresql
如何將現有索引提升為 PostgreSQL 中的主鍵
我知道如何在表中創建主鍵,但是如何使現有索引成為主鍵?我正在嘗試將現有表從一個數據庫複製到另一個數據庫。當我顯示表格時,底部的索引是這種形式:
"my_index" PRIMARY KEY, btree (column1, column2)
我創建了索引:
CREATE INDEX my_index ON my_table (column1, column2)
但是我不知道如何使它成為主鍵…
更新:我的伺服器版本是 8.3.3
您將使用 ALTER TABLE 添加主鍵約束。
ALTER TABLE .. ADD table_constraint_using_index
在 Postgres 中,您可以使用“ ”表單“提升”索引注意,對於主鍵,索引當然需要是唯一的
ALTER TABLE my_table ADD CONSTRAINT PK_my_table PRIMARY KEY USING INDEX my_index;
我認為在該版本的 postgresql 中不可能將索引轉換為主鍵。
我將刪除現有索引並使用您指定的列創建主鍵。:
DROP INDEX my_index; ALTER TABLE ONLY my_table ADD CONSTRAINT pk_my_table PRIMARY KEY(column1,column2);
在 7.4 和 8.4 中工作