Sintaks ini tidak valid dalam versi PostgreSQL apa pun :
ALTER SEQUENCE payments_id_seq LASTVALUE 22
Ini akan berhasil:
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
dan setara dengan:
SELECT setval('payments_id_seq', 22, FALSE);
Lebih banyak di manual saat ini untuk ALTER SEQUENCE
dan fungsi urutan .
Catatan yang setval()
mengharapkan salah satu (regclass, bigint)
atau (regclass, bigint, boolean)
. Dalam contoh di atas saya menyediakan literal yang belum diketik . Itu juga berhasil. Tetapi jika Anda memasukkan variabel yang diketik ke fungsi, Anda mungkin perlu cetakan tipe eksplisit untuk memenuhi resolusi tipe fungsi. Suka:
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
Untuk operasi berulang Anda mungkin tertarik pada:
ALTER SEQUENCE payments_id_seq START WITH 22; -- set default
ALTER SEQUENCE payments_id_seq RESTART; -- without value
START [WITH]
menyimpan RESTART
nomor default , yang digunakan untuk RESTART
panggilan berikutnya tanpa nilai. Anda memerlukan Postgres 8.4 atau lebih baru untuk bagian terakhir.
setval()
paling tidak ada dua argumen.