So-net無料ブログ作成
検索選択

Firebird 2.0 の SEQUENCE の機能 [RDBMS]

Firebird 2.0 から SEQUENCE という機能が追加されて、
これからは、GENERATOR の代わりに使って欲しいということらしいけど、具体的な使い方がわからなかった。

いろいろ探して、それっぽい資料発見
http://www.ibphoenix.com/download/Firebird_v2Alpha02.ReleaseNotes_0200_20.pdf

シーケンスの作成
create sequence a_seq;

値の変更
alter sequence a_seq restart with 100;

値の取得
select gen_id(a_seq, 1) from rdb$database; で、1コ刻みに取得。
select gen_id(a_seq, 0) from rdb$database; で、現在の値を取得。

シーケンスの削除
drop sequence a_seq;

と、ここまでは GENERATOR と同じ。
きっと、内部的には同じ処理になってるんだろう。
GENERATOR でやってるようにトリガーの中で gen_id() で次の値を取得して設定しても、順序数を設定することもできる。

んで、 GENERATOR と違うのは、
トリガーを設定してその中で gen_id() で値を取得して設定しなくても
insert into employee (id, name) values (next value for a_seq, 'Alice')

とすると、カラム id に、順番に値が設定されるらしい。
これで、いちいちトリガーを設定しなくてもいいけど、
next value for ・・・って、変なシンタックスだなぁ。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0