久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle序列sequence

139次閱讀
沒有評論

共計 3011 個字符,預計需要花費 8 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 Oracle 序列 sequence,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

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

關于 Oracle 序列 sequence 就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計3011字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 钟祥市| 定远县| 肃宁县| 安庆市| 龙南县| 固安县| 高邑县| 乳山市| 四平市| 桂阳县| 和龙市| 昌黎县| 宾阳县| 盘山县| 玛多县| 龙岩市| 吴忠市| 古交市| 年辖:市辖区| 巍山| 永康市| 定西市| 哈尔滨市| 文昌市| 凌云县| 元谋县| 广河县| 正镶白旗| 沛县| 南靖县| 牡丹江市| 朔州市| 镇远县| 大荔县| 澄迈县| 东至县| 永登县| 小金县| 上蔡县| 北辰区| 黎平县|