oracle學習 筆記(2)

來源:互聯網
上載者:User

標籤:art   選項   str   acl   錯誤   最大   alt   最小   color   

題記:在使用Oracle資料庫的時候,發現Oracle是沒有自動成長列來實現主鍵的,所以在此記錄學習。(PS:如果哪裡有錯誤或者不足的地方還請大家幫忙指出來)

二、序列(自動成長列)

  為此問題博主也是各種搜尋,挖貼子,最終也沒有找到為什麼Oracle沒有自增列這一原因,還望有大牛看到出來指點迷津,在此謝過了。

  因為在SQL Server中有會自動產生的“自動成長列”來實現主鍵”,很是方便,所以在換用Oracle的時候還是有點不習慣的,不過俗語說得好,不管白貓黑貓,捉到老鼠就是好貓;在Oracle中便使用序列來實現這一功能的。

1.建立序列

 

 1 /* 2     建立序列 3 */ 4  --注意命名規範 5 CREATE SEQUENCE sequence_name 6 --指定要產生的第一個序列,對於升序,預設值為最小值;對於降序,預設值為最大值 7 [START WITH integer] 8 --用於指定序號之接的間隔,預設值為1 , 若值為正值,則產生序列按升序排列;若為負值,則產生序列為降序排列 9 [INCREMENT BY integer]10 --MAXVALUE:指定序列可以產生最大值;11 --NOMAXUALUE:如果指定了NOMAXUALUE,Oracle將升序序列的最大值設為10^27,將降序序列的最大值設為-1;此為預設選項12 [MAXVALUE integer|NOMAXUALUE]13 --MINVALUE:指定序列的最小值,必須小於或等於START WITH值,並且必須小於MAXVALUE;14 --NOMAXUALUE:如果指定NOMAXUALUE,Oracle將升序序列的最小值設為1,將降序序列的最小值設為-10^26;此為預設選項15 [MINVALUE integer|NOMINUALUE]16 --CYCLE:指定序列達到最大值或者最小值之後,將重新從頭開始產生值17 --NOCYCLE:指定序列達到最大值或者最小值之後,將不能在繼續產生值18 [NOCYCLE|CYCLE]19 --CACHE:預先緩衝分配一組序號,並將其保留在記憶體中,這樣可以更快的訪問序號。當緩衝序號用完時,將產生另一組序號將其保留在緩衝中20 --NOCACHE:關閉緩衝,忽略此選項預設緩衝20個序號21 [CACHE integer|NOCACHE];

 

2.訪問序列

 

1 /*2   例    訪問序列3 */4 --使用NEXTVAL建立序列後第一次調用返回初始值,之後再次引用時,將使用INCREMENT BY子句來增加的值,並返回這個新值5 INSERT INTO tableName(id,name,price)6     VALUES(sequence_name.NEXTVAL,BigRoc,1);7 8 --返回序列的當前值,即最後一次引用NEXTVAL時返回的值,dual是Oracle提供的一張表 只會返回一行一列記錄9 SELECT sequence_name.CURRVAL FROM dual;

 

3.更改序列

 1 ALTER SEQUENCE sequence_name 2  3   [INCREMENT BY integer] 4  5   [MAXVALUE integer|NOMAXUALUE] 6  7   [MINVALUE integer|NOMINUALUE] 8  9   [NOCYCLE|CYCLE]10 11   [CACHE integer|NOCACHE];

注意:不能修改序列的START WITH參數,在修改序列時應注意升序序列的最小值應小於最大值!!!

4.刪除序列

 

1 DROP SEQUENCE sequence_name;

 

注意:使用序列中 在資料庫遷移的時候需注意,因為遷移後表中已存在資料,如不修改起始值,便會違背主鍵約束,所以在建立序列時要修改序列的起始值。

 

 

 

 

每天記錄一點,就能多學一點。

 

oracle學習 筆記(2)

聯繫我們

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