PostgreSQL | Как изменить значение последовательности?

PostgreSQL | Как изменить значение последовательности?

При переносе данных из таблицы в таблицу или при переводе таблицы в секционированную из обычной, возникает потребность в изменении последнего созданного значения для новой последовательности (SEQUENCE) если она участвовала в генерации целочисленных идентификаторов первичных ключей.

alter sequence a.mytable_new_seq restart with 500228059;

После этого можно будет увидеть сделанные изменения

select * from a.mytable_new_seq;

В таблице будет три столбца и три значения:

  1. last_value
  2. log_cnt
  3. is_called

Нас будет интересовать то значение, которое находится в поле «last_value«. Для целочисленных ключей с автоинкрементом оно скорее всего будет равно максимальному значению идентификатора в таблице, с которой работает данная последовательность (если последние записи не удалялись из таблицы).

Если нам нужно продолжать добавлять записи, то лучше увеличить последнее значение на единицу, чтобы небыло конфликтов вставки.

 

Информационные ссылки

Официальный сайт WEB-оболочки pgAdminhttps://www.pgadmin.org

Официальный сайт СУБД PostgreSQLhttps://www.postgresql.org

Официальный сайт клиента DBeaver для СУБД PostgreSQLhttps://dbeaver.io

Команда ALTER SEQUENCEhttps://postgrespro.ru/docs/postgresql/15/sql-altersequence