Esta sintaxe não é válida em nenhuma versão do PostgreSQL:
ALTER SEQUENCE payments_id_seq LASTVALUE 22
Isso funcionaria:
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
e é equivalente a:
SELECT setval('payments_id_seq', 22, FALSE);
Mais no manual atual para funçõesALTER SEQUENCE
e sequência .
Observe que setval()
espera um (regclass, bigint)
ou (regclass, bigint, boolean)
. No exemplo acima, estou fornecendo literais sem tipo . Isso também funciona. Mas se você alimentar variáveis digitadas para a função, poderá precisar de conversão explícita de tipos para satisfazer a resolução do tipo de função. Gostar:
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
Para operações repetidas, você pode estar interessado em:
ALTER SEQUENCE payments_id_seq START WITH 22; -- set default
ALTER SEQUENCE payments_id_seq RESTART; -- without value
START [WITH]
armazena um RESTART
número padrão , usado para RESTART
chamadas subseqüentes sem valor. Você precisa do Postgres 8.4 ou posterior para a última parte.
setval()
tem pelo menos dois argumentos.