0

我想在一个有 600 万条记录的表上创建一个主键,但是当我执行这个时:

ALTER TABLE schema_name.table_name ADD CONSTRAINT pkey_name PRIMARY KEY (field_pkey_name);

它正在锁定我的表,而 alter table 没有完成执行......

4

1 回答 1

5

尝试分两步进行:

CREATE UNIQUE INDEX CONCURRENTLY pkey_name
   ON schema_name.table_name (field_pkey_name);

ALTER TABLE schema_name.table_name
   ADD CONSTRAINT pkey_name PRIMARY KEY USING INDEX pkey_name;

仍然需要很长时间(甚至更长),但不会锁定表。

于 2021-01-07T08:28:30.273 回答