У меня есть таблица в базе данных postgres, которая используется в тестовой среде, где нам нужно добавлять и удалять несколько столбцов одновременно. Проблема в том, что postgres имеет максимум 1600 столбцов, и это число включает пропущенные столбцы. Моя таблица никогда не будет иметь 1600 столбцов «без отбрасывания», но со временем она будет накапливаться до 1600 с дропами.
Я пытался использовать VACUUM
и VACUUM FULL
, и я пытался преобразовать существующий столбец как его собственный тип (ALTER TABLE table ALTER COLUMN anycol TYPE anytype
), чтобы Postgres просканировал все столбцы и очистил память от удаленных столбцы, но ни один из них не сбрасывает postgres '`номер столбца.'
Я знаю, что это можно решить путем копирования всей таблицы, но у нее есть свои проблемы, и это отдельный вопрос.
Вы знаете, как заставить postgres забыть, что он отбросил столбцы?
Я знаю, что postgres не был разработан для подобных приложений, но я не буду вдаваться в подробности, почему мы решили реализовать его таким образом. Если у вас есть альтернативный инструмент, мне было бы интересно узнать об этом, но я все же хотел бы найти решение этой проблемы.