Oracle的序列

來源:互聯網
上載者:User

標籤:

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_NUMBERSTU_SEQ 1   1E28     1  N   N   20  1
修改序列
ALTER SEQUENCE stu_seq        MAXVALUE 9999        CACHE 9         CYCLE         ORDER;   

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

Oracle的序列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.