gpt4 book ai didi

postgresql - 清除删除列的 postgres 知识

转载 作者:行者123 更新时间:2023-11-29 11:28:42 30 4
gpt4 key购买 nike

我在 postgres 数据库中有一个表,该表用于测试环境,我们需要一次添加和删除多个列。问题是 postgres 最多有 1600 列,并且这个计数包括丢弃的列。我的表永远不会有 1600 个“未丢弃”的列,但随着时间的推移,它会累积到超过 1600 个有丢弃的列。

我已经尝试使用 VACUUMVACUUM FULL,并且我已经尝试将现有列重铸为它自己的类型(ALTER TABLE table ALTER COLUMN anycol TYPE anytype) 使 postgres 扫描所有列并从丢弃的列中清除内存,但这些都不会重置 postgres 的“列号”。

我知道这可以通过复制整个表来解决,但这有其自身的问题,并且在一个单独的问题中。

你知道有什么方法可以让 postgres 忘记它删除了列吗?

我知道 postgres 不是为这样的应用程序设计的,但我不打算深入探讨为什么我们选择以这种方式实现它。如果您有其他工具可供使用,我很想听听,但我仍然想找到解决方案。

最佳答案

这是不可能的,除非重新创建表格,正如您已经发现的那样。

否则,当删除列使用的存储已在各处被清除时,数据库系统将不得不以某种方式保持跟踪,然后重新编号属性。那将是非常昂贵和复杂的。

关于postgresql - 清除删除列的 postgres 知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605802/

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