きままぶろぐ

初心者なりに学んだことをメモしていくだけのブログ

【PostgreSQL】シーケンス番号取得

シーケンスの作成

CREATE SEQUENCE シーケンス名(カラム名_seq)
INCREMENT BY 1
MINVALUE 1
MAXVALUE 999999
START WITH 1
CACHE 1
NO CYCLE
OWNED BY NONE

上記の説明をすると、
CREATE SEQUENCE でシーケンスを作成する。シーケンス名は主キーとなるカラム名_seqがいいのかな
INCREMENT BY でいくつずつ増やしていくのかを決める。デフォルトでは1なので1ずつ増やしたいのなら書かなくてもいい。
MINVALUE で最小値を決める。デフォルトでは1なので最小値が1だったら書かなくてもいい。
MAXVALUE で最大値を決める。NO MAXVALUEでデフォルト値になる。デフォルトでは2の63乗の値になる。書かなくてもいい。
START WITH  で指定した値から始めることができる。デフォルトではMINVALUEから始まる。書かなくてもいい。
CACHE であらかじめ番号を割り当ててメモリに格納しておくシーケンス番号を指定する。書かなくてもいい。
CYCLE でシーケンスが限界値(MAXVALUE)になったら次に生成される番号はMINVALUEになる。NO CYCLE で限界値になったらエラーになる。

シーケンスを作成するだけなら

CREATE SEQUENCE シーケンス名(カラム名_seq);

で作成できる。

シーケンス番号を取得する

 select nextval('スキーマ.シーケンス名');

シーケンス一覧

¥ds