シーケンスの値の変更
シーケンス値の変更
シーケンスの値を変える機会があったのでメモ。
たとえば、今まではtest_seqというシーケンスに10をセットしたい場合は以下のようにしていた。
SELECT setval('test_seq', 10);
でもこれだと、次に以下のようにnextval()を使ったとき、
SELECT nextval('test_seq');
11を返す。
だから例えば、
SELECT settval('test_seq', 1); SELECT nextval('test_seq');
とすると、本当は1が欲しいのに2が返ってくる。これが不便だなあと思っていた。
でも実は探せばそういう方法もあった。
ALTER SEQUENCE test_seq RESET WITH 1; SELECT nextval('test_seq');
これは1を返してくれる。
マメ知識でした。