この構文は、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
呼び出しに使用されるデフォルト番号を格納します。最後の部分にはPostgres 8.4以降が必要です。
setval()
少なくとも2つの引数があるように見えます。