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:不預先在記憶體中生成序列號。
案例2:建立一個從1開始,預設最大值,每次增長1的序列,要求NOCYCLE,快取中有30個預先分配好的序列號。
程式碼演示:生成序列號
SQL> CREATE SEQUENCE MYSEQ
MINVALUE 1
START WITH 1
NOMAXVALUE
INCREMENT BY 1
NOCYCLE
CACHE 30
/
Sequence created
序列建立之後,可以透過序列物件的CURRVAL和NEXTVAL兩個“偽列”分別訪問該序列的當前值和下一個值。
使用序列:
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可以修改序列,在修改序列時有如下限制:
你或者是該sequence的owner,或者有ALTER ANY SEQUENCE 許可權才能改動sequence. 可以alter除start至以外的所有sequence引數.如果想要改變start值,必須 drop sequence 再 re-create .
1. 不能修改序列的初始值。
2. 最小值不能大於當前值。
3. 最大值不能小於當前值。
使用DROP SEQUENCE命令可以刪除一個序列物件。
序列修改和刪除
SQL> ALTER SEQUENCE MYSEQ
MAXVALUE 10000
MINVALUE -300
/
SEQUENCE ALTERED
刪除:
SQL> DROP SEQUENCE MYSEQ;
SEQUENCE DROPPED
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:不預先在記憶體中生成序列號。
案例2:建立一個從1開始,預設最大值,每次增長1的序列,要求NOCYCLE,快取中有30個預先分配好的序列號。
程式碼演示:生成序列號
SQL> CREATE SEQUENCE MYSEQ
MINVALUE 1
START WITH 1
NOMAXVALUE
INCREMENT BY 1
NOCYCLE
CACHE 30
/
Sequence created
序列建立之後,可以透過序列物件的CURRVAL和NEXTVAL兩個“偽列”分別訪問該序列的當前值和下一個值。
使用序列:
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可以修改序列,在修改序列時有如下限制:
你或者是該sequence的owner,或者有ALTER ANY SEQUENCE 許可權才能改動sequence. 可以alter除start至以外的所有sequence引數.如果想要改變start值,必須 drop sequence 再 re-create .
1. 不能修改序列的初始值。
2. 最小值不能大於當前值。
3. 最大值不能小於當前值。
使用DROP SEQUENCE命令可以刪除一個序列物件。
序列修改和刪除
SQL> ALTER SEQUENCE MYSEQ
MAXVALUE 10000
MINVALUE -300
/
SEQUENCE ALTERED
刪除:
SQL> DROP SEQUENCE MYSEQ;
SEQUENCE DROPPED
語法:建立序列
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:不預先在記憶體中生成序列號。
案例2:建立一個從1開始,預設最大值,每次增長1的序列,要求NOCYCLE,快取中有30個預先分配好的序列號。
程式碼演示:生成序列號
SQL> CREATE SEQUENCE MYSEQ
MINVALUE 1
START WITH 1
NOMAXVALUE
INCREMENT BY 1
NOCYCLE
CACHE 30
/
Sequence created
序列建立之後,可以透過序列物件的CURRVAL和NEXTVAL兩個“偽列”分別訪問該序列的當前值和下一個值。
使用序列:
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可以修改序列,在修改序列時有如下限制:
你或者是該sequence的owner,或者有ALTER ANY SEQUENCE 許可權才能改動sequence. 可以alter除start至以外的所有sequence引數.如果想要改變start值,必須 drop sequence 再 re-create .
1. 不能修改序列的初始值。
2. 最小值不能大於當前值。
3. 最大值不能小於當前值。
使用DROP SEQUENCE命令可以刪除一個序列物件。
序列修改和刪除
SQL> ALTER SEQUENCE MYSEQ
MAXVALUE 10000
MINVALUE -300
/
SEQUENCE ALTERED
刪除:
SQL> DROP SEQUENCE MYSEQ;
SEQUENCE DROPPED
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:不預先在記憶體中生成序列號。
案例2:建立一個從1開始,預設最大值,每次增長1的序列,要求NOCYCLE,快取中有30個預先分配好的序列號。
程式碼演示:生成序列號
SQL> CREATE SEQUENCE MYSEQ
MINVALUE 1
START WITH 1
NOMAXVALUE
INCREMENT BY 1
NOCYCLE
CACHE 30
/
Sequence created
序列建立之後,可以透過序列物件的CURRVAL和NEXTVAL兩個“偽列”分別訪問該序列的當前值和下一個值。
使用序列:
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可以修改序列,在修改序列時有如下限制:
你或者是該sequence的owner,或者有ALTER ANY SEQUENCE 許可權才能改動sequence. 可以alter除start至以外的所有sequence引數.如果想要改變start值,必須 drop sequence 再 re-create .
1. 不能修改序列的初始值。
2. 最小值不能大於當前值。
3. 最大值不能小於當前值。
使用DROP SEQUENCE命令可以刪除一個序列物件。
序列修改和刪除
SQL> ALTER SEQUENCE MYSEQ
MAXVALUE 10000
MINVALUE -300
/
SEQUENCE ALTERED
刪除:
SQL> DROP SEQUENCE MYSEQ;
SEQUENCE DROPPED
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2150216/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle - Sequence序列Oracle
- Oracle之Sequence(序列)Oracle
- PostgreSQL 序列(Sequence)SQL
- python sequence序列Python
- 詳解序列(sequence)
- 裁剪序列Cut the Sequence
- ORACLE SEQUENCEOracle
- [題解]P4597 序列 sequence
- Python基礎教程03 - 序列 (sequence)Python
- ORACLE SEQUENCE用法Oracle
- Oracle Sequence NocacheOracle
- Oracle Sequence Audses$研究Oracle
- oracle sequence語法Oracle
- oracle sequence 試用Oracle
- oracle的scn及sequenceOracle
- Oracle中Sequence的使用Oracle
- 「crudapi」零程式碼實現訂單序列號SequenceAPI
- 在MySQL中建立實現自增的序列(Sequence)MySql
- oracle中sequence使用的限制Oracle
- Oracle序列Oracle
- oracle 序列Oracle
- sequence to sequence模型模型
- Oracle -- 批次更新sequence的儲存Oracle
- Oracle -- 批量更新sequence的儲存Oracle
- ORACLE SEQUENCE的簡單介紹Oracle
- Oracle Sequence Cache 引數說明Oracle
- Oracle中sequence cache的測試Oracle
- Oracle中sequence的使用方法Oracle
- 不同於Oracle:SEQUENCE的區別Oracle
- [CareerCup] 17.8 Contiguous Sequence with Largest Sum 連續子序列之和最大
- 詳解數倉物件設計中序列SEQUENCE原理與應用物件
- oracle之序列Oracle
- 吳恩達《序列模型》課程筆記(3)– Sequence models & Attention mechanism吳恩達模型筆記
- 讀論文-序列感知推薦系統(Sequence-Aware Recommender Systems)
- 【小竅門tip】oracle sequence 修改增量值Oracle
- Oracle 基本操作之 建立自增欄位方法-ORACLE SEQUENCEOracle
- Oracle OCP(23):序列Oracle
- oracle 序列 詳解Oracle