1. 程式人生 > 資料庫 >通過例項瞭解Oracle序列Sequence使用方法

通過例項瞭解Oracle序列Sequence使用方法

序列

序列(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使用方法

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。