Oracle 序列 sequence

來源:互聯網
上載者:User

標籤:order   oracle   建立   修改   acl   replace   .com   注意   nocache   

序列:是oracle提供的,用於產生唯一數值的對象,主要配合表的單一主鍵使用。

建立序列

create sequence seq_NAME//命名

start with 1//初始值

increment by 1//遞增值

minvalue 1//最小值,可預設,採用系統預設值

maxvalue 999999999999999999//最大值,可預設,採用系統預設值

nocache//不緩衝  cache 緩衝  緩衝是系統一次性讀取多少個值放入當前會話的序列池以供使用提高效率,但容易跳號

cycle//迴圈 nocycle 不迴圈  當對象到達極值時,是否重新開始迭代

order//保障讀取序列的值,與串連會話的先後順序一致,先連的值在前。預設值noorder

使用序列:

       select 序列名.currval from dual        查看當前的序列值

       select 序列名.nextval from dual       查看下一個序列數,它會自動給當前的序列加自增量

       注意事項,第一次使用,先nextval否則報錯“出現 ORA-08002: 序列XXXXXXX.CURRVAL 尚未在此進程中定義。” 

修改序列:

       alter sequence seq_NAME maxvalue 9999999;

      注意事項:修改要符合邏輯,例如序列的next number是10000時,不能將最大值改為1000

刪除序列:

     drop sequence seq_NAME

 

綜合案例

    配合oracle觸發器實現mysql表主鍵自增效果

    建立觸發器

    create or replace trigger trg_T_NAME//定義觸發器

        before insert on T_NAME for each row//新增記錄操作
    begin

        select seq_NAME.nextval into :new.id from dual;//運用序列
    end;

 

參考文獻:http://docs.oracle.com/cd/E11882_01/server.112/e41084/toc.htm

Oracle 序列 sequence

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.