SQLのシーケンスを作成/使用するサンプルです。Oracleで確認しています。
目次
説明 | シーケンスとは |
サンプル | シーケンスを作成する |
シーケンスの値を採番する | |
シーケンスの現状の値を取得する | |
シーケンスを削除する |
シーケンスとは
- シーケンスは値を採番したいときに使用します。
- 初期値や増分値等はシーケンス作成時に設定します。
- シーケンスは「順序」とも呼ばれます。
- 以下は、Oracleのシーケンスのリンクです。
https://docs.oracle.com/cd/E16338_01/server.112/b56299/statements_6015.htm
シーケンスを作成する
create sequence TestSeq1
INCREMENT BY 1
START WITH 1
MAXVALUE 20
ORDER;
1行目のcreate sequenceでTestSeq1というシーケンスを作成します。
2行目は、シーケンスの値の増分で1ずつ増えていきます。
3行目は、初期値で1から始まります。
4行目のMAXVALUEは、値の上限で20桁にしています。正の値の場合は28桁以内にします。
5行目のorderは、要求どおりの順序で順序番号を生成することを保証します。
シーケンスの値を採番する
はじめに、最初の値を採番する必要があります。
採番を1回もしないでアクセスした場合はエラーになります。
select TestSeq1.nextval from dual;
nextvalで採番します。
シーケンス作成時に、初期値1で増分1としたので1がセットされます。
このSQLを実行する毎に値が増えていきます。
結果は、以下のとおりです。
NEXTVAL |
---|
1 |
シーケンスの現状の値を取得する
select TestSeq1.currval from dual;
currvalで現状の値を取得します。
結果は、以下のとおりです。
CURRVAL |
---|
1 |
以下は、次の値を取得する例です。
select TestSeq1.nextval from dual;
select TestSeq1.currval from dual;
最初にnextvalで採番してからcurrvalを行います。
結果は、以下のとおりです。
CURRVAL |
---|
2 |
シーケンスを削除する
drop sequence TestSeq1;
drop sequenceとシーケンス名を指定します。
関連の記事