oracle序列詳解

來源:互聯網
上載者:User

標籤:style   io   使用   ar   strong   資料   art   sp   on   

序列: 是oacle提供的用於產生一系列唯一數位資料庫物件。

l  自動提供唯一的數值

l  共用對象

l  主要用於提供主索引值

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

建立序列:

1、  要有建立序列的許可權 create sequence 或 create any sequence

2、  建立序列的文法

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 seqEmp increment by 1 start with 1 maxvalue 3 minvalue 1

Cycle cache 2;

//先nextval 後 currval

Select seqEmp.nextval  from dual; 

Select seqEmp.currval  from dual;

Cache<max-min/increment

 

//解釋

{

Create 建立

Sequence 序列 seqEmop 序列名稱

Increment by 步長

Stat with 1 開始值

Maxvalue  最大值

Minvalue  最小值

 

Cycle 迴圈 nocycle 不迴圈

Cache 緩衝   Cache<maxvalue-minvalue/increment by//一般不採用緩衝

Nextvalue 下一個

Currval 當前值

 

}

//執行個體應用

//實現id的自動遞增

//第一步

create table cdpt(

id number(6),

name varchar2(30),

constraint pk_id primary key(id)

);

 

Create sequence seq_cdpt

Increment by 1

Start with 1

Maxvalue 999999

Minvalue 1

Nocycle

nocache

 

insert into cdpt values(seq_cdpt.nextval,’feffefe’);

commit;

select * from cdpt;

/使用序列

會產生裂縫

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

•  復原

•  系統異常

>多個表同時使用同一序列

//修改序列的增量, 最大值, 最小值, 迴圈選項, 或是否裝入記憶體

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}];//分配並存入到記憶體中

修改序列的注意事項:

l   必須是序列的擁有者或對序列有 ALTER 許可權

l   只有將來的序列值會被改變

l   改變序列的初始值只能通過刪除序列之後重建序列的方法實現

刪除序列

l   使用DROP SEQUENCE 語句刪除序列

l   刪除之後,序列不能再次被引用

Alter sequence seqEmp maxvalue 5;

Select seqEmp.nextval from dual;

oracle序列詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.