Cette syntaxe n'est pas valide dans tout version de PostgreSQL :
ALTER SEQUENCE payments_id_seq LASTVALUE 22
Cela pourrait fonctionner :
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
Et est équivalent à :
SELECT setval('payments_id_seq', 22, FALSE);
Plus dans le actuel manuel pour ALTER SEQUENCE
et fonctions de séquence .
Notez que setval()
s'attend soit (regclass, bigint)
ou (regclass, bigint, boolean)
. Dans l'exemple ci-dessus, je fournis littéraux non typés . Cela fonctionne aussi. Mais si vous introduisez des variables typées dans la fonction, vous pouvez avoir besoin d'une version explicite de transferts de type pour satisfaire la résolution du type de fonction. Comme :
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
Pour des opérations répétées, vous pourriez être intéressé par :
ALTER SEQUENCE payments_id_seq START WITH 22; -- set default
ALTER SEQUENCE payments_id_seq RESTART; -- without value
START [WITH]
enregistre une valeur par défaut RESTART
numéro, qui est utilisé pour les RESTART
appels sans valeur. Vous avez besoin de Postgres 8.4 ou plus pour la dernière partie.