建立序列語法: 需要獲取相應的許可權
create sequence name
[ integer ----初始值和遞增間隔
| ----上界或無上界
| ----下界或無下界
| ----是否迴圈
| ----是否快取
| ----是否排序
cache 代表是否在記憶體中預分配相應大小的快取,以方便快速訪問。注意 cache 快取的值個數《迴圈體值個數 。
若系統宕機或突然斷電容易出現跳號現象,在建立計數器後,在記憶體快取x個值,當系統崩潰後,記憶體中的值丟失,然而檔案中任然記錄了上次已經讀取的值,從而造成跳號。
cycle 指定迴圈序列,超過上界或下界後,從下界或上界重新開始。
increment by 指定遞增大小,可以為正或為負。
order 保證序列號是因為有請求才生成的,並且按照請求的順序生成。
使用序列的方式:
nextval 獲取下乙個序列值。
currval 獲取最後一次nextval的序列值。
注意:初始化時,即第一次獲取序列值時要使用nextval獲取第乙個序列值。否則會報錯。
序列修改和刪除語法:
alter sequence name
|
|
|
| drop sequence name;
若要使序列start with 的值不同,則只能先刪除後建立。
當使用nextval初始化時,若修改increment by, 則會產生跳號。如圖:初始化應該為100,但是結果為130。
執行修改語句前:
執行修改語句後:
應用場景:
可以用在select、update、insert中。
variable seqid number
insert into t3 values(seq_tl.nextval) returning ncol into :seqid;
select * from t3 where ncol=:seqid;
返回插入行的序列值並顯示插入資訊。
Oracle中自動獲取序列sequence用法
oracle中沒有自增型別的字段的,所以通常情況下需要定義乙個sequence來作為自動增長型別欄位的資料。於是記錄了一些關於oracle sequence的資料,已備查用 oracle中的序列 sequence 1 如何定義乙個序列 僅向前的數字變數 和sql中的自動編號有點像 identity ...
Oracle建立自增長序列 SEQUENCE
oracle通過建立序列來實現自增張欄位。建立序列的語法 建立序列的語法 create sequence user sequence name increment by n start with n maxvalue n nomaxvalue minvalue n nominvalue 修改序列的語...
sql server建立序列sequence
1 建立乙個序列物件 1 create sequence schema name sequence name 2as built in integer type user defined integer type 3 start with 4increment by 5 6 7cycle 8 seq...