Cette syntaxe n'est valide dans aucune version de PostgreSQL:
ALTER SEQUENCE payments_id_seq LASTVALUE 22
Cela fonctionnerait:
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
et équivaut à:
SELECT setval('payments_id_seq', 22, FALSE);
Plus dans le courant manuel ALTER SEQUENCE
et des fonctions de séquence .
Notez que cela setval()
attend soit (regclass, bigint)
ou (regclass, bigint, boolean)
. Dans l'exemple ci-dessus, je fournis des littéraux non typés . Cela fonctionne aussi. Mais si vous fournissez des variables typées à la fonction, vous pouvez avoir besoin de castes de types explicites pour satisfaire la résolution de type de fonction. Comme:
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
Pour les opérations répétées, vous pourriez être intéressé par:
ALTER SEQUENCE payments_id_seq START WITH 22;
ALTER SEQUENCE payments_id_seq RESTART;
START [WITH]
stocke un RESTART
numéro par défaut , qui est utilisé pour les RESTART
appels suivants sans valeur. Vous avez besoin de Postgres 8.4 ou version ultérieure pour la dernière partie.
setval()
a au moins deux arguments.