この構文は、PostgreSQLのどのバージョンでも無効です。
ALTER SEQUENCE payments_id_seq LASTVALUE 22
これはうまくいくでしょう:
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
そして、以下と同等です:
SELECT setval('payments_id_seq', 22, FALSE);
およびシーケンス関数の現在のマニュアルで詳細を確認してください。ALTER SEQUENCE
またはのいずれかをsetval()
期待することに注意してください。上記の例では、型指定されていないリテラルを提供しています。それもうまくいきます。ただし、型付き変数を関数にフィードする場合は、関数型の解決を満たすために明示的な型キャストが必要になる場合があります。好き:(regclass, bigint)
(regclass, bigint, boolean)
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
繰り返し操作する場合は、次のことに関心があります。
ALTER SEQUENCE payments_id_seq START WITH 22; -- set default
ALTER SEQUENCE payments_id_seq RESTART; -- without value
START [WITH]
デフォルトの番号を格納しますRESTART
。これは、値のない後続のRESTART
呼び出しに使用されます。最後の部分にはPostgres8.4以降が必要です。