Questa sintassi non è valida in nessuna versione di PostgreSQL:
ALTER SEQUENCE payments_id_seq LASTVALUE 22
Questo funzionerebbe:
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
ed è equivalente a:
SELECT setval('payments_id_seq', 22, FALSE);
Maggiori informazioni nel manuale attuale per ALTER SEQUENCE
e funzioni di sequenza .
Si noti che setval()
prevede uno (regclass, bigint)
o (regclass, bigint, boolean)
. Nell'esempio sopra sto fornendo letterali non tipizzati . Anche questo funziona. Ma se si alimentano variabili digitate alla funzione, potrebbe essere necessario eseguire cast di tipi espliciti per soddisfare la risoluzione del tipo di funzione. Piace:
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
Per operazioni ripetute potresti essere interessato a:
ALTER SEQUENCE payments_id_seq START WITH 22; -- set default
ALTER SEQUENCE payments_id_seq RESTART; -- without value
START [WITH]
memorizza un RESTART
numero predefinito , che viene utilizzato per le RESTART
chiamate successive senza valore. Per l'ultima parte è necessario Postgres 8.4 o successivo.
setval()
abbia almeno due argomenti.