Posted on 2009-08-18 17:55
Prayer 閱讀(300)
評論(0) 編輯 收藏 引用 所屬分類:
數(shù)據(jù)庫,SQL 、
DB2
序列(SEQUENCE)是序列號生成器,可以為表中的行自動生成序列號,產(chǎn)生一組等間隔的數(shù)值(類型為數(shù)字)。其主要的用途是生成表的主鍵值,可以在插入語句中引用,也可以通過查詢檢查當前值,或使序列增至下一個值。
創(chuàng)建序列需要CREATE SEQUENCE系統(tǒng)權限。序列的創(chuàng)建語法如下:
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];
INCREMENT BY 用于定義序列的步長,如果省略,則默認為1,如果出現(xiàn)負值,則代表序列的值是按照此步長遞減的。
START WITH 定義序列的初始值(即產(chǎn)生的第一個值),默認為1。
MAXVALUE 定義序列生成器能產(chǎn)生的最大值。選項NOMAXVALUE是默認選項,代表沒有最大值定義,這時對于遞增序列,系統(tǒng)能夠產(chǎn)生的最大值是10的27次方;對于遞減序列,最大值是-1。
MINVALUE定義序列生成器能產(chǎn)生的最小值。選項NOMAXVALUE是默認選項,代表沒有最小值定義,這時對于遞減序列,系統(tǒng)能夠產(chǎn)生的最小值是?10的26次方;對于遞增序列,最小值是1。
CYCLE和NOCYCLE 表示當序列生成器的值達到限制值后是否循環(huán)。CYCLE代表循環(huán),NOCYCLE代表不循環(huán)。如果循環(huán),則當遞增序列達到最大值時,循環(huán)到最小值;對于遞減序列達到最小值時,循環(huán)到最大值。如果不循環(huán),達到限制值后,繼續(xù)產(chǎn)生新值就會發(fā)生錯誤。
CACHE(緩沖)定義存放序列的內存塊的大小,默認為20。NOCACHE表示不對序列進行內存緩沖。對序列進行內存緩沖,可以改善序列的性能。
刪除序列的語法是:
DROP SEQUENCE 序列名;
其中:
刪除序列的人應該是序列的創(chuàng)建者或擁有DROP ANY SEQUENCE系統(tǒng)權限的用戶。序列一旦刪除就不能被引用了。
序列的某些部分也可以在使用中進行修改,但不能修改SATRT WITH選項。對序列的修改只影響隨后產(chǎn)生的序號,已經(jīng)產(chǎn)生的序號不變。修改序列的語法如下:
創(chuàng)建和刪除序列
例1:創(chuàng)建序列:
CREATE SEQUENCE ABC INCREMENT BY 1 START WITH 10 MAXVALUE 9999999 NOCYCLE NOCACHE;
執(zhí)行結果
序列已創(chuàng)建。