Corredor

ウェブ、プログラミングの勉強メモ。

Oracle DB のシーケンスを作成・参照・操作する

Oracle DB のシーケンスを参照したり、「1 ずつ増える」挙動を「100 ずつ増える」挙動に変更してみたりする。

-- シーケンス一覧を取得する
SELECT * FROM USER_SEQUENCES;

-- 次のシーケンス値を取得 (実行するたびにインクリメントされる)
SELECT my_sequence.NEXTVAL FROM DUAL;

-- シーケンスの増加率を 100 に変える
ALTER SEQUENCE my_sequence INCREMENT BY 100;

-- この状態でシーケンス値を取得すると 100 増加する
SELECT my_sequence.NEXTVAL FROM DUAL;

-- 増加率を元に戻す
ALTER SEQUENCE my_sequence INCREMENT BY 1;

前職ではこうした SQL でシーケンス値を書き換えてデータ不整合を手直ししたりしていた…。

シーケンスは以下のように作れる。

CREATE SEQUENCE my_sequence       -- シーケンス名
    START WITH 0                  -- 初期値
    INCREMENT BY 1                -- 増分
    [NOMINVALUE | MINVALUE 0]     -- 最小値
    [NOMAXVALUE | MAXVALUE 9999]  -- 最大値
    [NOCYCLE | CYCLE]
    [NOCACHE | CACHE 5]           -- キャッシュ数
    [NOORDER | ORDER];

シーケンス値の最大値は、正の場合28桁 ≒ 1穣。まず枯渇することはない。

プロとしてのOracle物理設計入門 増補改訂版 (Oracle現場主義)

プロとしてのOracle物理設計入門 増補改訂版 (Oracle現場主義)

  • 作者: 株式会社メトロシステムズ ITソリューション事業部
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2007/12/22
  • メディア: 単行本
  • 購入: 3人 クリック: 29回
  • この商品を含むブログ (9件) を見る