Oracle Database シーケンスを作成する

Oracle Database シーケンスを作成する

Oracle Databaseで、シーケンスを作成する手順を記述してます。「CREATE SEQUENCE」で可能です。ここでは、実際に実行した結果を画像で掲載してます。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition
  • SQL Developer 21.2.1.204

手順

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

CREATE SEQUENCE シーケンス名
  [ START WITH 初期値 ]
  [ INCREMENT BY 増分値 ]
  [ MAXVALUE 最大値 | NOMAXVALUE ]
  [ MINVALUE 最小値 | NOMINVALUE ]
  [ CYCLE | NOCYCLE ]
  [ CACHE キャッシュ数 | NOCYCLE ]
;
パラメータ説明
START WITH初期値
INCREMENT BY増分
MAXVALUE 最大値 | NOMAXVALUEインクリメントする最大値の設定
NOMAXVALUEは設定なしとなる
MINVALUE 最小値 | NOMINVALUE増分がマイナスの時の最小値の設定
NOMINVALUEは設定なしとなる
CYCLE | NOCYCLEシーケンスが最大値に達した時、初期値に戻るかの設定
CACHE キャッシュ数 | NOCACHEキャッシュ数

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

CREATE SEQUENCE seq
  START WITH 1
  INCREMENT BY 1
  MAXVALUE 1000
  MINVALUE 1
  CYCLE
;

実行結果を見ると作成されていることが確認できます。

2回実行して「2」つ進めてみます。「nextval」を使用すると値が1つ進みます。

SELECT seq.nextval FROM dual;
SELECT seq.nextval FROM dual;

実行結果

現在値を確認

現在の値を確認するには「currval」を使用します。

SELECT seq.currval FROM dual;

実行結果

シーケンスを利用

シーケンスは、連番で作成できるのでINSERT文などに利用することができます。

insert into AGEDATA values (seq.nextval,10);