1月29日(金)2コマ目
今日、やったこと
シーケンス
今日のホワイトボード
シーケンスとは
ID列のように重複してはいけない列の値を生成する仕組み。
![]() |
| 図 シーケンス |
シーケンスから採番する
シーケンス名.nextvalで採番できる。
直近に採番した値はシーケンス名.currvalで取得できる。
シーケンスを作る
![]() |
| 図 シーケンスを作る |
SQLは以下の構文。
create sequence シーケンス名
start with 初期値
increment by 増分
maxvalue 最大値
minvalue 最小値
cycle または nocylce
cache または nocache
;
各オプションは以下のとおり。
〇start with 初期値
一番最初に採番される値。
〇increment by 増分
採番するたびに増える値。
負の値にすると、デクリメントするシーケンスになる。
たとえば、start with 1 increment by -1にすると、
1 => 0 => -1 => -2 と採番される。
〇maxvalue 最大値
採番される最大値。最大値は初期値以上、かつ最小値を超える値。
未指定時は最大値は昇順の場合、10の28乗-1、降順の場合は-1。
〇minvalue 最小値
採番される最小値。最小値は初期値以下、かつ最大値未満の値。
未指定時は最大値は昇順の場合、1、降順の場合は-(10の27乗 - 1)。
〇cycle
採番値が最小値と最大値で循環する。
シーケンス採番値が昇順の場合、最大値に達すると次は最小値が採番される。
降順の場合は、最小値に達すると、次は最大値が採番される。
〇nocycle
デフォルトはこちら。
循環しない。
〇cache
高速に採番するためにあらかじめメモリ上に採番しておく数を指定。
〇nocache
メモリ上に事前採番をしない。デフォルトはこちら。
作成済みシーケンスの変更
変更できるのは、増分(increment by)、最大値(maxvalue)、最小値(minvalue)、キャッシュ(cache)。
SQLは以下のとおり。
alter sequence シーケンス名
変更対象項目名 設定値
;
作成済みシーケンスの削除
SQLは以下のとおり。
drop sequence シーケンス名;


コメント