我想在一个有 600 万条记录的表上创建一个主键,但是当我执行这个时:
ALTER TABLE schema_name.table_name ADD CONSTRAINT pkey_name PRIMARY KEY (field_pkey_name);
它正在锁定我的表并且更改表没有完成执行...
尝试分两步进行:
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;
还是会花很长时间(甚至更长),但是不会长时间锁表