Postgresql
postgresql 修改現有的唯一索引
我在 PostgreSQL 上有這張表:
example_dev=# \d products Table "public.products" Column | Type | Collation | Nullable | Default --------+------------------------+-----------+----------+-------------------------------------- id | bigint | | not null | nextval('products_id_seq'::regclass) name | character varying(255) | | | price | integer | | | sku | character varying(255) | | | Indexes: "products_pkey" PRIMARY KEY, btree (id) "name_price_unique_index" UNIQUE, btree (name, price)
如您所見,我
name_price_unique_index
在列name
和price
.我需要做的是修改它,因為我也需要添加
sku
列。所以我需要三列的組合。像這樣的東西:
"name_price_sku_unique_index" UNIQUE, btree (name, price, sku)
我一直在尋找有關如何執行此操作的資訊,但我沒有找到任何資訊。
有誰知道如何做到這一點?
您需要創建一個新索引並替換舊索引:
CREATE UNIQUE INDEX CONCURRENTLY newidx ON tab (name, price, sku); DROP INDEX name_price_sku_unique_index; ALTER INDEX newidx RENAME TO name_price_sku_unique_index;