天天看點

oracle 序列-學習筆記

序列:自動提供唯一的數值,主要用于主鍵值,提高通路效率

建立序列:首先要有建立序列的權限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  删除之後,序列不能再次被引用