Postgres позволяет обновлять PK, хотя многие считают, что это плохая практика.Таким образом, вы можете заблокировать стол и UPDATE
.(Вы можете создать таблицу oldkey, newkey
всевозможными способами, например, оконную функцию.) Все отношения FK должны быть помечены как каскадные.Затем вы можете сбросить текущее значение последовательности идентификаторов.
Лично я бы просто использовал BIGSERIAL
.Если у вас так много обновлений и удалений, которые вы можете исчерпать, возможно, есть какой-то составной PK, основанный, скажем, на отметке времени и идентификаторе, которые вам помогут.