1. 程式人生 > >Oracle 之 序列

Oracle 之 序列

什麼是序列?

序列: 可供多個使用者用來產生唯一數值的資料庫物件

自動提供唯一的數值

共享物件

主要用於提供主鍵值

將序列值裝入記憶體可以提高訪問效率

 

CREATE SEQUENCE 語句

CREATE SEQUENCE sequence
       [INCREMENT BY n]  --每次增長的數值
       [START WITH n]    --從哪個值開始
       [{MAXVALUE n | NOMAXVALUE}]
       [{MINVALUE n | NOMINVALUE}]
       [{CYCLE | NOCYCLE}]     --是否需要迴圈
       [{CACHE n | NOCACHE}];  --是否快取登入

建立序列 DEPT_DEPTID_SEQ

CREATE SEQUENCE dept_deptid_seq
                INCREMENT BY 10
                START WITH 120
                MAXVALUE 9999
                NOCACHE
                NOCYCLE;

 然後建立一個表:

create table temp (id number(10),name varchar(20),age number(3) ,address verchar(40));

在temp表中 插入資料,並且以把id 欄位作為主鍵:但是序列不能作為引數動態寫入,必須在sql中寫;

insert into temp values (DEPT_DEPTID_SEQ.nextval,"zhangsan",19,"xxxxxxx");

 

序列是一個物件,有兩個屬性:

.nextval  和 .currval;

 

序列在下列情況下出現裂縫:

回滾

系統異常

多個表同時使用同一序列(所以一個表維護一個序列)

 

修改一個序列

ALTER SEQUENCE dept_deptid_seq
               INCREMENT BY 20
               MAXVALUE 999999
               NOCACHE
               NOCYCLE;

刪除一個序列

DROP SEQUENCE dept_deptid_seq;