gpt4 book ai didi

sql - 如何将唯一约束转换为 PostgreSQL 中的主键?

转载 作者:行者123 更新时间:2023-11-29 13:29:56 25 4
gpt4 key购买 nike

我有一个表,在某些列上有一个主键,在另一列上有另一个唯一约束。我删除了旧的主键,现在想使现有的唯一约束成为表的新主键,而不是从头开始删除/重建它。

现在的情况是这样的:

Indexes:
"t_review_routing_id_key" UNIQUE CONSTRAINT, btree (id)

当我运行时:

ALTER TABLE t_review_routing ADD PRIMARY KEY USING INDEX t_review_routing_id_key;

它说:

ERROR:  index "t_review_routing_id_key" is already associated with a constraint
LINE 1: ALTER TABLE t_review_routing ADD PRIMARY KEY USING INDEX t_r...

我也试过 ALTER TABLE t_review_routing ADD CONSTRAINT t_review_routing_id_pkey PRIMARY KEY USING INDEX t_review_routing_id_key;,同样的错误。

有什么想法吗?

最佳答案

您可以在创建新约束之前删除现有的约束,但是删除约束也会使索引消失。

但是,您可以创建一个新索引CONCURRENTLY ( example from the docs ):

CREATE UNIQUE INDEX CONCURRENTLY dist_id_temp_idx ON distributors (dist_id);
ALTER TABLE distributors DROP CONSTRAINT distributors_pkey,
ADD CONSTRAINT distributors_pkey PRIMARY KEY USING INDEX dist_id_temp_idx;

此方法在 ALTER TABLE ... ADD table_constraint_using_index 的文档中明确提及。

关于sql - 如何将唯一约束转换为 PostgreSQL 中的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26365713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com