0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【実践!PostreSQL】「CREATE SEQUENCE文」でシーケンスを作成する

Last updated at Posted at 2021-08-22

シーケンスとは

**連続して発生する順番(連番)のことで、行番号のような、データを一意に特定するための列を作りたいときに使うと良い
PostgreSQLでは
「CREATE SEQUENCE文」**を使うことで、シーケンスを作成することができる

使い方

目次

  • ①シーケンスを作成する
  • ②シーケンスの開始番号を設定する
  • ③最新のシーケンス番号を取得する
  • ④シーケンス番号を進めて、最新の番号を取得する
  • (おまけ)「CREATE SEQUENCE」のかゆいところに手が届くオプション

①シーケンスを作成する

CREATE SEQUENCE シーケンス名

「シーケンス名」→「テーブル名.シーケンス名」にすると丁寧

②シーケンスの開始番号を設定する

create sequence テーブル名.シーケンス名
    SELECT setval('テーブル名.シーケンス名', 番号)

すでにいくつかのシーケンス番号が振られているテーブルを複製した場合に、シーケンス番号の現在値を設定する。
※このケースではsetvalしておかないと、シーケンス番号は1から開始されるため重複エラーが起きてしまう

③最新のシーケンス番号を取得する

select currval('シーケンス名')

④シーケンス番号を進めて、最新の番号を取得する

select nextval('シーケンス名')

(おまけ)「CREATE SEQUENCE」のかゆいところに手が届くオプション

select nextval('シーケンス名')
    INCREMENT BY 1
    MINVALUE 5
    MAXVALUE 999
    START WITH 10
    CYCLE;

「INCREMENT」
値の増加量を指定できる(2を設定すれば、2ずつ増加するシーケンスになる)
「MINVALUE」
シーケンスとして作成する最小値を指定
「MAXVALUE」
シーケンスとして作成する最大値を指定
「START WITH」
任意の数からシーケンス番号を開始することができる
「CYCLE」
シーケンスが限界値に達した時、そのシーケンスを周回させることができる。(デフォルトはNO CYCLE)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?