Oracle序列Sequence用法

2022-06-23 16:40:14 字數 2034 閱讀 4697

序列

序列(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

Excel 自定義的序列的奇妙用法

excel中有一個神奇的功能 自定義序列,他能夠快速生成定義好的序列,對於需要多次重複使用且變動不大的資料,它能夠大大提高工作效率。 1 首...