oracle開發中序列的使用

oracle開發中序列的使用


  •   序列是一數據庫對象,利用它可生成唯一的整數。一般使用序列自動地生成主碼值。一個序列的值是由特別的Oracle程序自動生成,因而序列避免了在運用層實現序列而引起的性能瓶頸。Oracle序列允許同時生成多個序列號,而每一個序列號是唯一的。 當一個序列號生成時,序列是遞增,獨立於事務的提交或回滾。容許設計缺省序列,不需指定任何子句。該序列爲上升序列,由1開始,增量爲1,沒有上限。

        1) 建立序列命令

        CREATE SEQUENCE [user.]sequence_name
        [increment by n]
        [start with n]
        [maxvalue n | nomaxvalue]
        [minvalue n | nominvalue];
        INCREMENT BY: 指定序列號之間的間隔,該值可爲正的或負的整數,但不可爲0。序列爲升序。忽略該子句時,缺省值爲1。
        START WITH:指定生成的第一個序列號。在升序時,序列可從比最小值大的值開始,缺省值爲序列的最小值。對於降序,序列可由比最大值小的值開始,缺省值爲序列的最大值。
        MAXVALUE:指定序列可生成的最大值。
        NOMAXVALUE:爲升序指定最大值爲1027,爲降序指定最大值爲-1。
        MINVALUE:指定序列的最小值。
        NOMINVALUE:爲升序指定最小值爲1。爲降序指定最小值爲-1026。

        2) 更改序列命令

        ALTERSEQUENCE [user.]sequence_name
        [INCREMENT BY n]
        [MAXVALUE n| NOMAXVALUE ]
        [MINVALUE n | NOMINVALUE];
        修改序列可以:
        ? 修改未來序列值的增量。
        ? 設置或撤消最小值或最大值。
        ? 轉變緩衝序列的數目。
        ? 指定序列號是否是有序。

        3) 刪除序列命令

        DROP SEQUENCE [user.]sequence_name;
        從數據庫中刪除一序列。

       樹立一個序列號的語句:



    舉例:

    -- Create sequence 
    create sequence SEQ_ALLACTIVESEARCHINFO
    minvalue 1
    maxvalue 999999999999999999999999999
    start with 15
    increment by 1
    nocache;

    應用:

    select seq_allactivesearchinfo.nextval into l_searchid from dual;

    alter sequence seq_allactivesearchinfo increment by 200;//200爲步長


發佈了30 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章