Цей синтаксис недійсний у будь-якій версії PostgreSQL:
ALTER SEQUENCE payments_id_seq LASTVALUE 22
Це спрацювало б:
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
і еквівалентно:
SELECT setval('payments_id_seq', 22, FALSE);
Більше в даний час керівництво для ALTER SEQUENCE
і функції послідовності .
Зауважте, що setval()
очікує (regclass, bigint)
або (regclass, bigint, boolean)
. У наведеному вище прикладі я надаю нетипізовані літерали . Це теж працює. Але якщо ви подаєте введені змінні функції, вам можуть знадобитися чіткі титри типів, щоб задовольнити роздільну здатність типу функції. Подібно до:
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
Для повторних операцій вас можуть зацікавити:
ALTER SEQUENCE payments_id_seq START WITH 22; -- set default
ALTER SEQUENCE payments_id_seq RESTART; -- without value
START [WITH]
зберігає номер за замовчуванням RESTART
, який використовується для наступних RESTART
дзвінків без значення. Для останньої частини вам потрібен Postgres 8.4 або пізнішої версії.
setval()
принаймні два аргументи.