【実践!PostreSQL】「CREATE SEQUENCE文」でシーケンスを作成する
シーケンスとは
連続して発生する順番(連番)のことで、行番号のような、データを一意に特定するための列を作りたいときに使うと良い
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)
Author And Source
この問題について(【実践!PostreSQL】「CREATE SEQUENCE文」でシーケンスを作成する), 我々は、より多くの情報をここで見つけました https://qiita.com/k-manabe/items/2e92570110271074088e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .