序列:自動提供唯一的數值,主要用于主鍵值,提高通路效率
建立序列:首先要有建立序列的權限create sequence 或者 create any sequence
建立序列語句:
CREATE SEQUENCE sequence //建立序列名稱
[INCREMENT BY n] //遞增的序列值是n 如果n是正數就遞增,如果是負數就遞減 預設是1
[START WITH n] //開始的值,遞增預設是minvalue 遞減是maxvalue
[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循環/不循環
[{CACHE n | NOCACHE}];//配置設定并存入到記憶體中
NEXTVAL 傳回序列中下一個有效的值,任何使用者都可以引用
CURRVAL 中存放序列的目前值
NEXTVAL 應在 CURRVAL 之前指定 ,二者應同時有效
解釋:
Create 建立
Sequence 序列 seqEmop 序列名稱
Increment by 步長
Stat with 1 開始值
Maxvalue 最大值
Minvalue 最小值
Cycle 循環 nocycle 不循環
Cache 緩存 Cache<maxvalue-minvalue/increment by//一般不采用緩存
Nextvalue 下一個
Currval 目前值
執行個體:
create table myTest(
id number(6),
name varchar2(30),
constraint pk_id primary key(id)
);
Create sequence seq_myTest
Increment by 1
Start with 1
Maxvalue 999999
Minvalue 1
Nocycle
nocache
insert into myTest values(seq_myTest.nextval,’feffefe’);
commit;
select * from myTest;
修改:
alter SEQUENCE sequence //建立序列名稱
[INCREMENT BY n] //遞增的序列值是n 如果n是正數就遞增,如果是負數就遞減 預設是1
[START WITH n] //開始的值,遞增預設是minvalue 遞減是maxvalue
[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循環/不循環
[{CACHE n | NOCACHE}];//配置設定并存入到記憶體中
修改注意事項:隻有将來的序列值會被改變、
改變序列的初始值隻能通過删除序列之後重建序列的方法實作
删除序列:DROP SEQUENCE 删除之後,序列不能再次被引用