PostgreSQL シーケンスを作成する

PostgreSQL シーケンスを作成する

PostgreSQLで、シーケンスを作成する手順を記述してます。

環境

  • OS Rocky Linux release 8.4 (Green Obsidian)
  • PostgreSQL 14.0
  • pgadmin 6.0

シーケンスを作成

シーケンスを作成する場合は、「CREATE SEQUENCE」を使用します。

CREATE SEQUENCE シーケンス名

実際に、シーケンスを作成してみます。

CREATE SEQUENCE bar_seq
    INCREMENT BY 1 -- 増分
    MAXVALUE 99999999 -- MAX
    START WITH 1 -- 初期値

実行結果

シーケンスが作成されました。

シーケンス値を確認してみます。

select * from bar_seq

実行結果

シーケンスを利用

以下のように、シーケンスを作成したテーブルのIDとして利用することが可能です。

「nextval(‘シーケンス名’)」で次の値に進みます。

CREATE TABLE bar_table (id int, name varchar(20));
INSERT INTO bar_table VALUES (nextval('bar_seq'), 'tanaka');
INSERT INTO bar_table VALUES (nextval('bar_seq'), 'sato');
INSERT INTO bar_table VALUES (nextval('bar_seq'), 'suzuki');
SELECT * FROM bar_table;

実行結果

シーケンス値を利用して「id」が作成されていることが確認できます。

シーケンス値変更

シーケンス値を変更する場合は、「setval」を使用します。

select setval('foo_seq', 10);
select currval('foo_seq'); -- 確認

実行結果

10に変更されていることが確認できます。

シーケンス削除

シーケンス削除は、「drop sequence」で可能です。

drop sequence bar_seq