ORACLE中序列-sequence的應用

來源:互聯網
上載者:User
oracle

oracle中沒有象Acces中自動編號的欄位類型,所以在oracle中要想用一個欄位自動增值,還比較麻煩,在此提供給大家一個方法,利用序列,來完成欄位的自動增加,下邊介紹一下怎麼建立序列,使用序列,和刪除序列。

1.建立序列--------------create sequence

 create sequence  Seq_AutoID   //所起序列名叫 Seq_AutoID ,需要記住此序列名,以後方可調用

minvalue   1   //最小值從1開始 可以根據自己的需要自訂

maxvalue 9999999999999999999     //序列最大值為 999999999999999999999 可以自訂

start with 1   //從1開始 可以自訂

increment by  1   //遞增幅度為 1   可以自訂

cache 20 ;     //緩衝20

2. 調用序列,完成自動加1 ------------Seq_AutoID.nextval

在向表中插入、更新 資料時可以調用 ,由於自己實際應用中只用到了 插入時調用,所以在此只舉此列

EG:  insert into table1 ( f1,f2,f3,f4) select  f1,f2,f3,Seq_AutoID.nextval  from table2  where 條件

當然上邊這句是批量插入資料,你也可以用 values值來一條條插入。在此需說明的一點為table1.f4欄位需為數值型(number)型。這樣,你的table1中的f4欄位就是從1開始,以幅度為1來遞增的數值了,實現了自動增加的功能。當然幅度可以自己定義。

還有一點是 序列是值是唯一的,只要你一直用nextval來遞增的話,在oracle中序號不會重複.可以用CurrVal來查詢當前的序列值,在你nextval後,currval也會跟著變。

3.序列的刪除--------------drop sequence

當為了重設序列時,或不需要序列時,可以先刪除序列

EG: drop sequence Seq_AutoID;

4.用序列來修改某個欄位的值

eg:  update cse_depot set jobid=Seq_AutoID.nextval

以上這個例子是用當前的序列值給cse_depot的欄位 jobid賦值,使jobid欄位實現自動加1功能

以上幾點是自己跟據自己所用總結出來的,也希望大家跟帖參與討論。



聯繫我們

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