Bu sözdizimi PostgreSQL'in hiçbir sürümünde geçerli değildir :
ALTER SEQUENCE payments_id_seq LASTVALUE 22
Bu işe yarar:
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
ve şuna eşittir:
SELECT setval('payments_id_seq', 22, FALSE);
Ve dizi fonksiyonları için mevcut kılavuzda daha fazlasıALTER SEQUENCE
.
Not setval()
bekler ya (regclass, bigint)
ya (regclass, bigint, boolean)
. Yukarıdaki örnekte türlenmemiş değişmez değerler sağlıyorum . Bu da işe yarıyor. Ancak, işleve yazılan değişkenleri beslerseniz , işlev türü çözünürlüğünü karşılamak için açık tür kalıplarına ihtiyacınız olabilir . Sevmek:
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
Tekrarlanan işlemler için ilginizi çekebilir:
ALTER SEQUENCE payments_id_seq START WITH 22; -- set default
ALTER SEQUENCE payments_id_seq RESTART; -- without value
START [WITH]
varsayılanı saklar RESTART
RESTART
değeri olmayan sonraki aramalar için kullanılan numarayı . Son bölüm için Postgres 8.4 veya daha yenisine ihtiyacınız var.
setval()
en az iki argüman var.