使用提交在 postgresql 中删除行时出现问题

问题描述 投票:0回答:1

我有一个表,花了很多时间删除一些行(按国家/地区划分有 32000 条记录)。 我创建一个函数。 我拆分了删除并使用循环指令并提交,但是当我执行该函数时出现错误

我的功能删除测量

    LOOP
            DELETE FROM measure WHERE id_measure IN (SELECT id_measure FROM measure WHERE id_country=10 LIMIT 1000);
            EXIT WHEN NOT FOUND;
            COMMIT;

   END LOOP;

在另一个函数中,我调用 DelteMeasure,但我的提交行有问题。

Select * from DeleteMeasure();

我可以帮忙吗?

postgresql function commit
1个回答
0
投票

你应该尝试简单的

delete from measure where id_country = 10;

删除前请确保

is_country
已编入索引。重复选择 1000 个项目直到没有更多匹配项会减慢该过程。

如果您需要删除大部分记录,那么您可以将要保留的记录保存到另一个表中,该表的架构是从该表复制的,删除该表,然后重命名另一个表。

© www.soinside.com 2019 - 2024. All rights reserved.