问题如下:从一个表中删除所有记录,然后将它们插入到另一个表中。
我有一个按日期标准分区的表。为了避免对每条记录一个一个地进行分区,我将数据收集在一个表中,并定期将它们移动到另一个表中。复制的记录必须从第一个表中删除。我正在使用带有 RETURNING 的 DELETE 查询,但副作用是 autovacuum 需要做很多工作来清理原始表中的混乱。
我正在尝试实现相同的效果(复制和删除记录),但没有为真空机制创建额外的工作。
当我删除所有行(通过删除不带 where 条件)时,我在考虑TRUNCATE,但它不支持 RETURNING 子句。另一个想法是以某种方式配置表,在删除操作时自动从页面中删除元组,而无需等待真空,但我没有找到是否可能。
你能建议一些我可以用来解决我的问题的东西吗?