Esta sintaxis no es válida en ninguna versión de PostgreSQL:
ALTER SEQUENCE payments_id_seq LASTVALUE 22
Esto funcionaría:
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
y es equivalente a:
SELECT setval('payments_id_seq', 22, FALSE);
Más en el manual actual para ALTER SEQUENCE
y funciones de secuencia .
Tenga en cuenta que setval()
espera (regclass, bigint)
o (regclass, bigint, boolean)
. En el ejemplo anterior, estoy proporcionando literales sin tipo . Eso tambien funciona. Pero si alimenta las variables escritas a la función, puede necesitar conversiones de tipo explícitas para satisfacer la resolución del tipo de función. Me gusta:
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
Para operaciones repetidas puede interesarle:
ALTER SEQUENCE payments_id_seq START WITH 22; -- set default
ALTER SEQUENCE payments_id_seq RESTART; -- without value
START [WITH]
almacena un RESTART
número predeterminado , que se utiliza para RESTART
llamadas posteriores sin valor. Necesita Postgres 8.4 o posterior para la última parte.
setval()
tiene al menos dos argumentos.