oracle-序列____oracle

來源:互聯網
上載者:User
序列

1、【序列】和【視圖】一樣,並不佔用實際的儲存空間,只是在資料字典中儲存它的定義資訊;當使用者在自己的模式中建立【序列】時,使用者必須具備CREATE_SEQUENCE系統許可權;

2、文法:
CREATE sequence seq_name
[Start with n]
[increment by n]
[minvalue n|nominvalue]
[maxvalue n|nomaxvalue]
[cache n]
[cycle|nocycle]
[order|noorder]

說明:
① seq_name:序列名;
② Start with:指定序列的開始值預設情況下,遞增序列的起始值為minvlue,遞減序列的起始值為maxvalue;
③ Increment:表示序列的增量,一個正數將產生遞增的序列,一個負數將產生一個遞減的序列;預設增量是1;
④ minvalue:序列的最小值;
⑤ maxvalue:序列的最大值;
⑥ cache:是否為系列號預緩衝,並儲存在記憶體中;
⑦ cycle:迴圈,當序列達到最大值或最小值時,是否複位並繼續;Nocycle表示在序列的最大值或者最小值之後,序列再增加將返回一個錯誤;
⑧ order:保證產生的序列按照順序產生;Noorder只保證序列值的唯一性,不保證順序;

3、舉例:
create sequence seq_demo
start with 1
increment by 1
minvalue 0
maxvalue 999999
cache 10
cycle
order;

4、偽序號:NEXTVAL()和CURRENVAL()
NEXTVAL():返回下一個序列值;
CURRENVAL():返回當前序列值;

5、為表中的記錄添加序列值(可以當做自增長用)
Insert into table scott.book(BookID,bookname) values(seq_name.nextval(),’小紅’);

6、查詢當前系列號
Select seq_name.currenval from dual;

7、管理序列
SCOTT使用者模式下,修改序列seq_name,序列的增量為50,緩衝為50;
alter sequence seq_name
Increment by 50
Cache 50;
這裡插一句題外話,什麼時候用alter,什麼時候用update;如果修改的是表結構等系統,結構性的,用alter;如果修改的是具體的資料,則用update;

8、查看結構資訊
DESC seq_name;

9、刪除序列
Drop sequence seq_name;
這裡再插一句題外話,什麼時候用drop,什麼時候用delete;如果是表結構等系統性,結構性的,用drop;如果是刪除具體的資料,則用delete;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.