例1:建立序列:create
sequence abc increment by1
start
with
1maxvalue
9999999999
nocycle nocache;
語法詳解
create
sequence 序列名
[increment by n]--
1、[start with n]--
2、--
3、--
4、;
--5、
其中:1
、increment
by用於定義序列的步長(增長量),如果省略,則預設為1,如果出現負值,則代表序列的值是按照此步長遞減的。
2、start
with
定義序列的初始值(即產生的第乙個值),預設為1。
3、maxvalue 定義序列生成器能產生的最大值。
選項nomaxvalue是預設選項,代表沒有最大值定義,這時對於遞增序列,系統能夠產生的最大值是10的27次方;對於遞減序列,最大值是-1
。 minvalue 定義序列生成器能產生的最小值。
選項nomaxvalue是預設選項,代表沒有最小值定義,這時對於遞減序列,系統能夠產生的最小值是?10的26次方;對於遞增序列,最小值是1。
4、cycle 和 nocycle 表示當序列生成器的值達到限制值後是否迴圈。cycle代表迴圈,nocycle代表不迴圈。
如果迴圈,則當遞增序列達到最大值時,迴圈到最小值;對於遞減序列達到最小值時,迴圈到最大值。
如果不迴圈,達到限制值後,繼續產生新值就會發生錯誤。
5、cache(緩衝)定義存放序列的記憶體塊的大小,預設為20。nocache表示不對序列進行記憶體緩衝。
對序列進行記憶體緩衝,可以改善序列的效能
例2:刪除序列:
drop
sequence 序列名;
select
序列名.currval
from
dual;
--獲取序列的當前值
select
序列名.nextval
from
dual;
--獲取序列的下乙個值
例4:檢視序列
同過資料字典user_objects可以檢視使用者擁有的序列。
通過資料字典user_sequences可以檢視序列的設定。
select
*from
user_objects;
select
*from
user_sequences;
在oracle中,可以為每張表的主鍵建立乙個單獨的序列,然後從這個序列中獲取自動增加的識別符號,把它賦值給主鍵。例如一下語句建立了乙個名為customer_id_seq的序列,這個序列的起始值為1,增量為2。
create sequence customer_id_seq increment by
2 start with
1
一旦定義了customer_id_seq序列,就可以訪問序列的curval和nextval屬性。
以下sql語句先建立了customers表,然後插入兩條記錄,在插入時設定了id和name欄位的值,其中id欄位的值來自於customer_id_seq序列。最後查詢customers表中的id欄位。
createtable customers(id int
primary
keynot
null, name varchar(15
));insert
into customers values(customer_id_seq.nextval, '
name1');
insert
into customers values(customer_id_seq.nextval, '
name2');
select id from customers;
oracle中建立自增長序列
首先建立序列 create sequence incr stu id seq minvalue 1 start with 1 increment by 1 nomaxvalue nocache 然後建立觸發器 create or replace trigger incr stu id trig be...
Oracle建立自增長序列 SEQUENCE
oracle通過建立序列來實現自增張欄位。建立序列的語法 建立序列的語法 create sequence user sequence name increment by n start with n maxvalue n nomaxvalue minvalue n nominvalue 修改序列的語...
自增長序列 serial
serial create table tuniq idserial,name text insert into tuniq name values zero insert into tuniq name values second 表名 欄位名 seq 實現的,每次插入的時候會從這個seq中取值作...