1. 程式人生 > >oracle資料庫中序列使用講解

oracle資料庫中序列使用講解

oracle資料庫中序列使用講解
定義:
   序列(SEQUENCE)是序列號生成器,可以為表中的行自動生成序列號,產生一組等間隔的數值(型別為數字)。
   其主要的用途是生成表的主鍵值,可以在插入語句中使用,也可以通過查詢檢查當前值,或使序列增至下一個值。
   建立序列需要使用CREATE SEQUENCE系統許可權,序列的建立方法:
      create sequence 序列名
      [increment by n]
      [start with n]
      [{maxvalue/minvalue n|nomaxvalue}]
      [{cycle/nocycle}]
      [{cache n|nocache}];
釋義:

   increment by:用於定義序列的步長,若果省略,則預設為1,若果出現負值,則代表序列的值是按照此步長遞減的。
   start with:定義序列的初始值(即產生的第一個值),預設為1
   maxvalue:定義序列的最大值。minvalue:定義序列的最小值。nomaxvalue:表示預設選項,沒有最大值定義。
   cycle/nocycle:表示當序列生成器的值達到限制值後是否迴圈,cycle表示迴圈,nocycle表示不迴圈。
   cache/nocache:定義存放序列的記憶體塊兒的大小,預設為20。nocache:表示不對序列進行記憶體緩衝。對序列進行內
               存緩衝可以改善快取的效能。
刪除序列的語法:

   drop sequence 序列名;
序列的使用:
   currval和nextval來引用序列:
   呼叫mextval將生成序列中的下一個序列號,呼叫時指出序列名,即用以下方法:
   序列名.nextval;
   currval用於產生序列的當前值,無論呼叫多少次都不會產生序列的下一個值,如果序列還沒有通過呼叫nextval產生
   過序列的下一個值,先引用currval將沒有意義。
呼叫currval的方法如下:
   序列名.currval;
   第一次呼叫nextval會產生序列的初始值。
將序列作為表的主鍵的方法:

   在向表中插入資料時呼叫nextval方法
   insert into 表名 values (序列名.nextval,值1,值2,...);