シーケンスを初期化する方法【PostgreSQL】

シーケンスを初期化する方法を忘れていたので、調べてみました。特に第三引数の扱いがどっちがどっちだったか忘れやすいですね。

まとめ

SELECT setval('foo’, 1000, true); — 次に取得される値(nextval)は1001
SELECT setval('foo’, 1000, false); — 次に取得される値(nextval)は1000
第3引数は省略することもできます。
省略時は[true]を指定したものをみなされます。

第3引数をうっかり書き忘れると、最初の番号が想定外の値になることがあります。1で初期化したら2から始まるとかね。大抵のシステムで実害は無いでしょうが、ピッタリ合わせて番号を付ける必要があるときは注意です!

システム開発

Posted by @erestage