Oracleのシーケンス

高速に連番を発行するための仕組み。ただし、設定により番号の増分を変えられる。

シーケンスの作成

CREATE SEQUENCE を使用する。

CREATE SEQUENCE sequence_name;



シーケンスを調べる

静的データディクショナリALL_SEQUENCES、DBA_SEQUENCES、USER_SEQUENCESを調べる。

ALL_SEQUENCES
ログインしているユーザーがアクセスできる全ての順序。
DBA_SEQUENCES
データベース内の全ての順序。
USER_SEQUENCES
ログインしているユーザーが所有する全ての順序。

主要項目一覧
列名説明
SEQUENCE_OWNER順序の所有者の名前
SEQUENCE_NAME順序名
MIN_VALUE順序の最小値
MAX_VALUE順序の最大値
INCREMENT_BY順序が増やされるときの増分値
CYCLE_FLAG限度に達したときに、順序の繰返しを実行するかどうか
ORDER_FLAG順序番号が順番に生成されるかどうか
CACHE_SIZEキャッシュする順序番号の数
LAST_NUMBER最後にディスクに書き込まれる順序番号。順序にキャッシュが使用される場合、ディスクに書き込まれる番号は、最後に順序キャッシュに入れられた番号。この番号は前回に使用された順序番号より大きくなる。

DESC user_sequences;
Name                 Null?    Type
-------------------- -------- ----------------
SEQUENCE_NAME        NOT NULL VARCHAR2(30)
MIN_VALUE                     NUMBER
MAX_VALUE                     NUMBER
INCREMENT_BY         NOT NULL NUMBER
CYCLE_FLAG                    VARCHAR2(1)
ORDER_FLAG                    VARCHAR2(1)
CACHE_SIZE           NOT NULL NUMBER
LAST_NUMBER          NOT NULL NUMBER