程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle數據庫中序列用法講解

Oracle數據庫中序列用法講解

編輯:關於Oracle數據庫

  序列(SEQUENCE)是序列號生成器,可以為表中的行自動生成序列號,產生一組等間隔的數值(類型為數字)。其主要的用途是生成表的主鍵值,可以在插入語句中引用,也可以通過查詢檢查當前值,或使序列增至下一個值。

  創建序列需要CREATE SEQUENCE系統權限。序列的創建語法如下:

  CREATESEQUENCE序列名
  [INCREMENTBYn]
  [STARTWITHn]
  [{MAXVALUE/MINVALUEn|NOMAXVALUE}]
  [{CYCLE|NOCYCLE}]
  [{CACHEn|NOCACHE}];

  其中:

  INCREMENT BY 用於定義序列的步長,如果省略,則默認為1,如果出現負值,則代表序列的值是按照此步長遞減的。

  START WITH 定義序列的初始值(即產生的第一個值),默認為1。

  MAXVALUE 定義序列生成器能產生的最大值。選項NOMAXVALUE是默認選項,代表沒有最大值定義,這時對於遞增序列,系統能夠產生的最大值是10的27次方;對於遞減序列,最大值是-1。

  MINVALUE定義序列生成器能產生的最小值。選項NOMAXVALUE是默認選項,代表沒有最小值定義,這時對於遞減序列,系統能夠產生的最小值是?10的26次方;對於遞增序列,最小值是1。

  CYCLE和NOCYCLE 表示當序列生成器的值達到限制值後是否循環。CYCLE代表循環,NOCYCLE代表不循環。如果循環,則當遞增序列達到最大值時,循環到最小值;對於遞減序列達到最小值時,循環到最大值。如果不循環,達到限制值後,繼續產生新值就會發生錯誤。

  CACHE(緩沖)定義存放序列的內存塊的大小,默認為20。NOCACHE表示不對序列進行內存緩沖。對序列進行內存緩沖,可以改善序列的性能。

  刪除序列的語法是:

  DROPSEQUENCE序列名;

  刪除序列的人應該是序列的創建者或擁有DROP ANY SEQUENCE系統權限的用戶。序列一旦刪除就不能被引用了。

  序列的某些部分也可以在使用中進行修改,但不能修改SATRT WITH選項。對序列的修改只影響隨後產生的序號,已經產生的序號不變。修改序列的語法如下:

  創建和刪除序列

  例1:創建序列:

  CREATE SEQUENCE ABC INCREMENT BY 1 START WITH 10 MAXVALUE 9999999 NOCYCLE NOCACHE;

  執行結果:

  序列已創建。

  步驟2:刪除序列:

  DROP SEQUENCE ABC;

  執行結果:

  序列已丟棄。

  說明:以上創建的序列名為ABC,是遞增序列,增量為1,初始值為10。該序列不循環,不使用內存。沒有定義最小值,默認最小值為1,最大值為9 999 999。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved