序列
序列(sequence)是用來生成連續的整數資料的物件。序列常常用來作為主鍵中增長列,
序列中的可以公升序生成,也可以降序生成。建立序列的語法是:
語法結構:建立序列
create sequence sequence_name
[start with num]
[increment by increment]
[maxvalue num|nomaxvalue]
[minvalue num|nominvalue]
[cycle|nocycle]
[cache num|nocache]
語法解析:
① start with:從某乙個整數開始,公升序預設值是 1,降序預設值是-1。
② increment by:增長數。如果是正數則公升序生成,如果是負數則降序生成。公升序默
認值是 1,降序預設值是-1。
③ maxvalue:指最大值。
④ nomaxvalue:這是最大值的預設選項,公升序的最大值是: 1027,降序預設值是-1。
⑤ minvalue:指最小值。
⑥ nominvalue:這是預設值選項,公升序預設值是 1,降序預設值是-1026。
⑦ cycle:表示如果公升序達到最大值後,從最小值重新開始;如果是降序序列,達到最
小值後,從最大值重新開始。
⑧ nocycle:表示不重新開始,序列公升序達到最大值、降序達到最小值後就報錯。默
認 nocycle。
⑨ cache:使用 cache 選項時,該序列會根據序列規則預生成一組序列號。保留在內
存中,當使用下乙個序列號時,可以更快的響應。當記憶體中的序列號用完時,系統
再生成一組新的序列號,並儲存在快取中,這樣可以提高生成序列號的效率。 oracle
缺省會生產 20 個序列號。
⑩ nocache:不預先在記憶體中生成序列號
建立乙個從 1 開始,預設最大值,每次增長 1 的序列,要求 nocycle,快取中
有 30 個預先分配好的序列號
create sequence myseq
minvalue 1
start with 1
nomaxvalue
increment by 1
nocycle
cache 30
create table stu(
sid number primary key,
sname varchar2(20)
)insert into stu values(myseq.nextval,'小明');
insert into stu values(myseq.nextval,'小張');
序列建立之後,可以通過序列物件的 currval 和 nextval 兩個「偽列」分別訪問該序
列的當前值和下乙個值
select myseq.nextval from dual;
select myseq.currval from dual;
操作例項:
--新建乙個序列
drop sequence sequence_student_sid
--建立乙個序列
create sequence sequence_student_sid
start with 1000 --起始值是1000
increment by 10 --每次增量1
maxvalue 9999 --最大增量9999
--新建乙個表
drop table stu09
create table stu09(
sid number,
sname varchar2(100)
)--通過使用序列的nextval方法,進行自動增加
insert into stu09 values(sequence_student_sid.nextval,'蕭瑾')
insert into stu09 values(sequence_student_sid.nextval,'小張')
select *
from stu09
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...