oracle中沒(méi)有象acces中自動(dòng)編號(hào)的字段類(lèi)型,所以在oracle中要想用一個(gè)字段自動(dòng)增值,還比較麻煩,在此提供給大家一個(gè)方法,利用序列,來(lái)完成字段的自動(dòng)增加,下邊介紹一下怎么創(chuàng)建序列,使用序列,和刪除序列。
1.創(chuàng)建序列--------------create sequence
create sequence seq_autoid //所起序列名叫 seq_autoid ,需要記住此序列名,以后方可調(diào)用
minvalue 1 //最小值從1開(kāi)始 可以根據(jù)自己的需要自定義
maxvalue 9999999999999999999 //序列最大值為 999999999999999999999 可以自定義
start with 1 //從1開(kāi)始 可以自定義
increment by 1 //遞增幅度為 1 可以自定義
cache 20 ; //緩存20
2. 調(diào)用序列,完成自動(dòng)加1 ------------seq_autoid.nextval
在向表中插入、更新 數(shù)據(jù)時(shí)可以調(diào)用 ,由于自己實(shí)際應(yīng)用中只用到了 插入時(shí)調(diào)用,所以在此只舉此列
eg: insert into table1 ( f1,f2,f3,f4) select f1,f2,f3,seq_autoid.nextval from table2 where 條件
當(dāng)然上邊這句是批量插入數(shù)據(jù),你也可以用 values值來(lái)一條條插入。在此需說(shuō)明的一點(diǎn)為table1.f4字段需為數(shù)值型(number)型。這樣,你的table1中的f4字段就是從1開(kāi)始,以幅度為1來(lái)遞增的數(shù)值了,實(shí)現(xiàn)了自動(dòng)增加的功能。當(dāng)然幅度可以自己定義。
還有一點(diǎn)是 序列是值是唯一的,只要你一直用nextval來(lái)遞增的話(huà),在oracle中序列號(hào)不會(huì)重復(fù).可以用currval來(lái)查詢(xún)當(dāng)前的序列值,在你nextval后,currval也會(huì)跟著變。
3.序列的刪除--------------drop sequence
當(dāng)為了重置序列時(shí),或不需要序列時(shí),可以先刪除序列
eg: drop sequence seq_autoid;
4.用序列來(lái)修改某個(gè)字段的值
eg: update cse_depot set jobid=seq_autoid.nextval
以上這個(gè)例子是用當(dāng)前的序列值給cse_depot的字段 jobid賦值,使jobid字段實(shí)現(xiàn)自動(dòng)加1功能
以上幾點(diǎn)是自己跟據(jù)自己所用總結(jié)出來(lái)的,也希望大家跟帖參與討論。
新聞熱點(diǎn)
疑難解答
圖片精選