gpt4 book ai didi

postgresql - 如何在 PostgreSQL 中临时禁用外键和主键约束?

转载 作者:行者123 更新时间:2023-11-29 12:19:05 36 4
gpt4 key购买 nike

我有一个表有两个字段。结构是这样的:

CREATE TABLE raw_links
(
value_id bigint NOT NULL,
raw_id integer NOT NULL,
CONSTRAINT raw_links_pk PRIMARY KEY (raw_id, dp_id),
CONSTRAINT raw_fk FOREIGN KEY (raw_id)
REFERENCES raw_data (raw_data_id) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT
)

我必须从此表中删除 500 万条记录。为此,我想禁用这两个约束,以便删除速度更快。删除后我想创建两个约束。

最佳答案

您可以执行 ALTER TABLE DROP CONSTRAINT raw_links_pk 并为 raw_fk 执行相同的操作。

删除记录后,首先执行VACUUM ANALYZE raw_links(如果要回收磁盘空间,则执行VACUUM FULL raw_links),以更新表统计信息。

然后最终使用 ALTER TABLE ADD CONSTRAINT ... 重建约束。

关于postgresql - 如何在 PostgreSQL 中临时禁用外键和主键约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36734920/

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