Это неправильный подход.
То, что вы ищете, это разбиение .
Вы можете создавать разделы диапазона, охватывающие один год каждый.Чтобы удалить старые данные, все, что вам нужно сделать, это удалить раздел на год, который больше не нужен.
Если вам необходимо сохранить данные по каким-либо причинам, вы также можете просто отключить раздел отТаблица.Тогда данные все еще «лежат», но не отображаются в (разделенной) таблице.Вы можете запросить (отдельный) раздел напрямую, чтобы получить доступ к этим данным.Вы даже можете переместить этот (отдельный) раздел на более медленный жесткий диск, чтобы освободить место на ваших быстрых дисках, если у вас их больше одного.
Но вы можете даже увидеть, что одно только разбиение может повысить производительность, но это во многом зависит от ваших запросов.
Обратите внимание, что для этого вы должны использовать Postgres 11, так как разбиение не было таким сложным в старых версиях.