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

Oracle的序列

編輯:Oracle教程

Oracle的序列


Oracle的序列

序列介紹

序列是Oracle提供的用於產生一系列唯一數字的數據庫對象。使用序列可以實現自動產生主鍵值。序列也可以在許多用戶並發環境中使用,為所有用戶生成不重復的順序數字,而且不需要任何額外的I/O開銷。

與視圖一樣,序列並不占用實際的存儲空間,只是在數據字典中保存它的定義信息。用戶要在自己的模式中創建序列,必須具有CREATE SEQUECNCE系統權限,如果要在其他模式中創建序列,則必須具有CREATE ANY SEQUENCE系統權限。

創建序列的語法如下:

CREATE SEQUENCE sequence_name
[START WITH start]
[INCREMENT BY increment]
[MINVALUE minvalue | NOMINVALUE]
[MAXVALUE maxvalue | NOMAXVALUE]
[CACHE cache | NOCACHE]
[CYCLE | NOCYCLE]
[ORDER | NOORDER]

創建序列

首先,以SYSDBA角色登錄,賦予用戶創建序列權限:

  GRANT CREATE ANY SEQUENCE TO siege

然後創建序列:

CREATE SEQUENCE stu_seq
       START WITH 1
       INCREMENT BY 1
       NOMAXVALUE
       NOCYCLE;

管理序列

使用序列,需要使用序列的兩個偽劣NEXTVAL和CURRVAL。修改序列使用ALTER SEQUENCE語句,除了序列的起始值之外,可以重新定義序列的任何子句和參數進行修改。如果要修改序列的起始值,則必須先刪除序列,然後再重新創建該序列。對序列進行修改後,在緩存中的序列值將全部丟失,可以通過數據字典USER_SEQUENCE獲取序列的信息。

查看序列信息

SELECT * FROM user_sequences WHERE sequence_name='STU_SEQ'

結果如下:

SEQUENCE_NAME   MIN_VALUE   MAX_VALUE   INCREMENT_BY CYCLE_FLAG ORDER_FLAG    CACHE_SIZE    LAST_NUMBER
STU_SEQ 1   1E28     1  N   N   20  1

修改序列

ALTER SEQUENCE stu_seq
        MAXVALUE 9999
        CACHE 9
         CYCLE
         ORDER;   

若要修改起始值,則只能刪除序列然後重新創建。

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