oracle學習篇十:序列

來源:互聯網
上載者:User

標籤:

序列:是用來產生唯一、連續的整數的資料庫物件。序列通常用來自動產生主鍵或唯一鍵的值。

1. 建立序列文法如下:
Create SEQUENCE sequence_name
[START WITH integer]
[INCREMENT BY integer]
[MAXVALUE integer|NOMAXVALUE]
[MINVALUE integer|NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE interger|NOCACHE];

其中:START WITH: 是指定要產生的第一個序號。對於升序序列,其預設值為序列的最小值。對於降序序列,其預設值為序列的最大值。
INCREMENT BY:是用於指定序號之間的間隔。其預設值為1。如果integer為正值,則產生的序列將按升序排列,否則按降序排列。
MAXVALUE: 指定序列可以產生的最大值。
NOMAXVALUE: 這是預設選項,將升序序列的最大值設為10的27次冪,將降序序列的最大值設為-1。
MINVALUE: 指定序列的最小值。MINVALUE必須小於或等於START WITH的值,並且必須小於MAXVALUE。
NOMINVALUE: 這是預設選項,將升序序列的最小值設為1,將降序序列的最小值設為-10的26次冪。
CYCLE: 指定序列在達到最大值或最小值後,將繼續從頭開始產生值。
NOCYCLE: 這是預設選項。指定序列在達到最大值或最小值後,將不能再繼續產生值。
CACHE: 使用CACHE選項可以預先分配一組序號,並將其保留在記憶體中,這樣可以更快的訪問序號。
NOCACHE: 此項則不會為加快速度而預先分配序號。如果在建立序列時忽略了CACHE和NOCACHE選項,Oracle將預設緩衝20個序號。

樣本3:Create SEQUENCE toys_seq
START WITH 10
INCREMENT BY 2
MAXVALUE 2000
MINVALUE 10
NOCYCLE
CACHE 30;

2. 訪問序列:可以通過CURRVAL和NEXTVAL偽列來訪問該序列的值。
樣本4:示範從序列toys_seq中選擇值插入toys表中的toyid列。執行成功將會在該表的toyid列插入值"P10"和"P12"。
INSERT INTO toys(toyid,toyname,toyprice) values(‘p‘||toys_seq.NEXTVAL,‘TWENTY‘,25);
INSERT INTO toys(toyid,toyname,toyprice) values(‘p‘||toys_seq.NEXTVAL,‘MAGIC PENCIL‘,75);

樣本5:示範如何查看序列當前值
Select toys_seq.CURRVAL from dual;

3. 更改序列:ALTER SEQUENCE命令用於設定或刪除MINVALUE或MAXVALUE、修改增量值、修改緩衝中的序號的數目。
修改序列文法如下:注意,不能修改序列的START WITH參數。在修改序列時,應注意升序序列的最小值應小於最大值。
ALTER SEQUENCE [schema.]sequence_name
[INCREMENT BY integer]
[MAXVALUE integer|NOMAXVALUE]
[MINVALUE integer|NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE interger|NOCACHE];

樣本6:示範如何設定一個新的MAXVALUE,並為toys_seq序列開啟了CYCLE。
ALTER SEQUENCE toys_seq
MAXVALUE 5000
CYCLE;

可以查詢字典視圖User_Sequences來查看使用者所建立的序列的詳細資料

4.刪除序列文法:Drop SEQUENCE toys_seq;

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.