Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

PostgreSQLのシーケンス操作関数

PostgreSQLのシーケンス操作関数は連番の数値を入れる際に便利な機能です。

実際のところ

シーケンス型serialを3からはじめる場合、以下のようにします。

CREATE SEQUENCE serial START 3;

ためしに中をみてみると、デフォで色々と値を持っている事がわかります。

SELECT * FROM serial;
 sequence_name | last_value | start_value | increment_by |      max_value      | min_value | cache_value | log_cnt | is_cycled | is_called 
---------------+------------+-------------+--------------+---------------------+-----------+-------------+---------+-----------+-----------
 serial        |          3 |           3 |            1 | 9223372036854775807 |         1 |           1 |      32 | f         | t
(1 row)

現在の値

SELECT currval('serial');
 currval 
---------
       3
(1 row)

次の値

SELECT nextval('serial');
 nextval 
---------
       4
(1 row)

数値の設定

SELECT setval('serial', 42);
 setval 
--------
     42
(1 row)

SELECT currval('serial');
 currval 
---------
      42
(1 row)