Oracle 之 序列
阿新 • • 發佈:2018-12-09
什麼是序列?
序列: 可供多個使用者用來產生唯一數值的資料庫物件
•自動提供唯一的數值
•共享物件
•主要用於提供主鍵值
•將序列值裝入記憶體可以提高訪問效率
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;