gpt4 book ai didi

postgresql - 警告 : concurrent delete in progress within table while creating index in big table in Postgres 9. 2

转载 作者:行者123 更新时间:2023-11-29 11:52:04 27 4
gpt4 key购买 nike

我在 53 GB 的大表上创建索引时遇到问题,所以我多次尝试创建这个索引代码是

do $$
begin
if not exists (select * from pg_class where relname = 'index_usage_id_idx') then
create index index_usage_id_idx on mytable (usage_id);
end if;
end $$;

在创建索引时,我在 pg_log 目录中得到了很多日志,错误如下,这些日志不会停止并公开超过 200 GB 的日志,以至于我的可用空间不足

2014-01-17 11:39:40 上下文:SQL 语句“在 mytable (usage_id) 上创建索引 index_usage_id_idx”
PL/pgSQL函数inline_code_block line 46 at SQL语句
2014-01-17 11:39:40 警告:表“mytable”中正在进行并发删除

为什么要同时删除一些东西?

最佳答案

另一个并发事务正在尝试从表中删除行。

通过更改应用程序逻辑或创建规则以某种方式推迟这些删除。

CREATE RULE
_delete
AS ON
delete
TO
mytable
DO INSTEAD
INSERT INTO my_table_to_be_deleted_later (...) VALUES (OLD...);

在那种情况下,您可能还需要暂时删除 FOREIGN KEY 约束(如果 my_table 引用另一个表或正在被引用)。

或者,尝试 CREATE INDEX CONCURRENTLY .

关于postgresql - 警告 : concurrent delete in progress within table while creating index in big table in Postgres 9. 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21178917/

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