這篇文章將為大家詳細(xì)講解有關(guān)Oracle序列sequence,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。
“專業(yè)、務(wù)實(shí)、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個(gè)人一直以來堅(jiān)持追求的企業(yè)文化。 創(chuàng)新互聯(lián)公司是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、軟件開發(fā)、設(shè)計(jì)服務(wù)業(yè)務(wù)。我們始終堅(jiān)持以客戶需求為導(dǎo)向,結(jié)合用戶體驗(yàn)與視覺傳達(dá),提供有針對性的項(xiàng)目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場,引領(lǐng)市場!
Oracle序列:序列(Sequence)創(chuàng)建、使用、修改、刪除,序列(Sequence)是用來生成連續(xù)的整數(shù)數(shù)據(jù)的對象。序列常常用來作為主鍵中增長列,序列中的可以升序生成,也可以降序生成。
語法:創(chuàng)建序列
CREATE SEQUENCE sequence_name
[START WITH num]
[INCREMENT BY increment]
[MAXVALUE num|NOMAXVALUE]
[MINVALUE num|NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE num|NOCACHE]
語法解析:
START WITH:從某一個(gè)整數(shù)開始,升序默認(rèn)值是1,降序默認(rèn)值是-1。
INCREMENT BY:增長數(shù)。如果是正數(shù)則升序生成,如果是負(fù)數(shù)則降序生成。升序默認(rèn)值是1,降序默認(rèn)值是-1。
MAXVALUE:指最大值。
NOMAXVALUE:這是最大值的默認(rèn)選項(xiàng),升序的最大值是:1027,降序默認(rèn)值是-1。
MINVALUE:指最小值。
NOMINVALUE:這是默認(rèn)值選項(xiàng),升序默認(rèn)值是1,降序默認(rèn)值是-1026。
CYCLE:表示如果升序達(dá)到最大值后,從最小值重新開始;如果是降序序列,達(dá)到最小值后,從最大值重新開始。
NOCYCLE:表示不重新開始,序列升序達(dá)到最大值、降序達(dá)到最小值后就報(bào)錯(cuò)。默認(rèn)NOCYCLE。
CACHE:使用CACHE選項(xiàng)時(shí),該序列會(huì)根據(jù)序列規(guī)則預(yù)生成一組序列號(hào)。保留在內(nèi)存中,當(dāng)使用下一個(gè)序列號(hào)時(shí),可以更快的響應(yīng)。當(dāng)內(nèi)存中的序列號(hào)用完時(shí),系統(tǒng)再生成一組新的序列號(hào),并保存在緩存中,這樣可以提高生成序列號(hào)的效率。Oracle默認(rèn)會(huì)生產(chǎn)20個(gè)序列號(hào)。
NOCACHE:不預(yù)先在內(nèi)存中生成序列號(hào)。
案例2:創(chuàng)建一個(gè)從1開始,默認(rèn)最大值,每次增長1的序列,要求NOCYCLE,緩存中有30個(gè)預(yù)先分配好的序列號(hào)。
代碼演示:生成序列號(hào)
SQL> CREATE SEQUENCE MYSEQ
MINVALUE 1
START WITH 1
NOMAXVALUE
INCREMENT BY 1
NOCYCLE
CACHE 30
/
Sequence created
序列創(chuàng)建之后,可以通過序列對象的CURRVAL和NEXTVAL兩個(gè)“偽列”分別訪問該序列的當(dāng)前值和下一個(gè)值。
使用序列:
SQL> SELECT MYSEQ.NEXTVAL FROM DUAL;
NEXTVAL
----------
1
SQL> SELECT MYSEQ.NEXTVAL FROM DUAL;
NEXTVAL
----------
2
SQL> SELECT MYSEQ.CURRVAL FROM DUAL;
CURRVAL
----------
2
使用ALTER SEQUENCE可以修改序列,在修改序列時(shí)有如下限制:
你或者是該sequence的owner,或者有ALTER ANY SEQUENCE 權(quán)限才能改動(dòng)sequence. 可以alter除start至以外的所有sequence參數(shù).如果想要改變start值,必須 drop sequence 再 re-create .
1. 不能修改序列的初始值。
2. 最小值不能大于當(dāng)前值。
3. 最大值不能小于當(dāng)前值。
使用DROP SEQUENCE命令可以刪除一個(gè)序列對象。
序列修改和刪除
SQL> ALTER SEQUENCE MYSEQ
MAXVALUE 10000
MINVALUE -300
/
SEQUENCE ALTERED
刪除:
SQL> DROP SEQUENCE MYSEQ;
SEQUENCE DROPPED
Oracle序列:序列(Sequence)創(chuàng)建、使用、修改、刪除,序列(Sequence)是用來生成連續(xù)的整數(shù)數(shù)據(jù)的對象。序列常常用來作為主鍵中增長列,序列中的可以升序生成,也可以降序生成。
語法:創(chuàng)建序列
CREATE SEQUENCE sequence_name
[START WITH num]
[INCREMENT BY increment]
[MAXVALUE num|NOMAXVALUE]
[MINVALUE num|NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE num|NOCACHE]
語法解析:
START WITH:從某一個(gè)整數(shù)開始,升序默認(rèn)值是1,降序默認(rèn)值是-1。
INCREMENT BY:增長數(shù)。如果是正數(shù)則升序生成,如果是負(fù)數(shù)則降序生成。升序默認(rèn)值是1,降序默認(rèn)值是-1。
MAXVALUE:指最大值。
NOMAXVALUE:這是最大值的默認(rèn)選項(xiàng),升序的最大值是:1027,降序默認(rèn)值是-1。
MINVALUE:指最小值。
NOMINVALUE:這是默認(rèn)值選項(xiàng),升序默認(rèn)值是1,降序默認(rèn)值是-1026。
CYCLE:表示如果升序達(dá)到最大值后,從最小值重新開始;如果是降序序列,達(dá)到最小值后,從最大值重新開始。
NOCYCLE:表示不重新開始,序列升序達(dá)到最大值、降序達(dá)到最小值后就報(bào)錯(cuò)。默認(rèn)NOCYCLE。
CACHE:使用CACHE選項(xiàng)時(shí),該序列會(huì)根據(jù)序列規(guī)則預(yù)生成一組序列號(hào)。保留在內(nèi)存中,當(dāng)使用下一個(gè)序列號(hào)時(shí),可以更快的響應(yīng)。當(dāng)內(nèi)存中的序列號(hào)用完時(shí),系統(tǒng)再生成一組新的序列號(hào),并保存在緩存中,這樣可以提高生成序列號(hào)的效率。Oracle默認(rèn)會(huì)生產(chǎn)20個(gè)序列號(hào)。
NOCACHE:不預(yù)先在內(nèi)存中生成序列號(hào)。
案例2:創(chuàng)建一個(gè)從1開始,默認(rèn)最大值,每次增長1的序列,要求NOCYCLE,緩存中有30個(gè)預(yù)先分配好的序列號(hào)。
代碼演示:生成序列號(hào)
SQL> CREATE SEQUENCE MYSEQ
MINVALUE 1
START WITH 1
NOMAXVALUE
INCREMENT BY 1
NOCYCLE
CACHE 30
/
Sequence created
序列創(chuàng)建之后,可以通過序列對象的CURRVAL和NEXTVAL兩個(gè)“偽列”分別訪問該序列的當(dāng)前值和下一個(gè)值。
使用序列:
SQL> SELECT MYSEQ.NEXTVAL FROM DUAL;
NEXTVAL
----------
1
SQL> SELECT MYSEQ.NEXTVAL FROM DUAL;
NEXTVAL
----------
2
SQL> SELECT MYSEQ.CURRVAL FROM DUAL;
CURRVAL
----------
2
使用ALTER SEQUENCE可以修改序列,在修改序列時(shí)有如下限制:
你或者是該sequence的owner,或者有ALTER ANY SEQUENCE 權(quán)限才能改動(dòng)sequence. 可以alter除start至以外的所有sequence參數(shù).如果想要改變start值,必須 drop sequence 再 re-create .
1. 不能修改序列的初始值。
2. 最小值不能大于當(dāng)前值。
3. 最大值不能小于當(dāng)前值。
使用DROP SEQUENCE命令可以刪除一個(gè)序列對象。
序列修改和刪除
SQL> ALTER SEQUENCE MYSEQ
MAXVALUE 10000
MINVALUE -300
/
SEQUENCE ALTERED
刪除:
SQL> DROP SEQUENCE MYSEQ;
SEQUENCE DROPPED
關(guān)于Oracle序列sequence就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
文章名稱:Oracle序列sequence
網(wǎng)站URL:http://www.rwnh.cn/article2/jgjgic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、用戶體驗(yàn)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)站設(shè)計(jì)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)