在一些業(yè)務(wù)表中原本不需要ID字段作為唯一標(biāo)識(shí),可是在后期為了方便和需求要在數(shù)據(jù)表中加ID列作為主鍵或者外鍵!那么下面總結(jié)了兩種方式:
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括旅順口網(wǎng)站建設(shè)、旅順口網(wǎng)站制作、旅順口網(wǎng)頁(yè)制作以及旅順口網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,旅順口網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到旅順口省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
解決方案一:
序列+UPDATE,原表有數(shù)據(jù)想新增一列ID,自動(dòng)增值
1、創(chuàng)建序列
格式:
create sequence test_seq
start with 1--起始位1
increment by 1--根基需求,每次增加多少
minvalue 1--最小值
maxvalue 999--根據(jù)需求最大值
nocache--無(wú)緩存
詳細(xì)請(qǐng)看本人博客序列介紹
2、進(jìn)行插入
格式:
update 表 set ID=test_seq.nextval;--原數(shù)據(jù)表中有多少行,ID就會(huì)插入多少行
注意這是更改!也就是說(shuō)原來(lái)你表中ID如果有數(shù)據(jù)將會(huì)被覆蓋
本方法適用于新建ID列無(wú)數(shù)據(jù),不牽扯其余列動(dòng)作指令,保證數(shù)據(jù)完整性,大多數(shù)序列用于自動(dòng)增長(zhǎng)
解決方案二:
另一種場(chǎng)景就是想來(lái)點(diǎn)高端的(特殊場(chǎng)景),當(dāng)我插入或者更改某列,把數(shù)據(jù)按照序列增長(zhǎng)的步調(diào)來(lái)實(shí)現(xiàn)
序列+觸發(fā)器+游標(biāo)
1、創(chuàng)建序列
格式:
create sequence test_seq
start with 0--起始位
increment by 3--每次我想增加3
minvalue 1--最小值
maxvalue 999--根據(jù)需求最大值
nocache--無(wú)緩存
2、創(chuàng)建觸發(fā)器
格式:
create or replace trigger trig_test
before update on test_table
for each row
declare ing_age number;
begin
if :new.ID = 0 or :new.ID is null then
select test_seq.nextval into ing_age from sys.dual;
:new.ID := ing_age;
end if;
end trig_test;
如果愛有需求可以整個(gè)游標(biāo),這里不再掩飾,因?yàn)槿绻麊未鎸?duì)序列等一類問題操作,這樣就復(fù)雜化會(huì)增加數(shù)據(jù)庫(kù)和后期維護(hù)的成本負(fù)擔(dān)。
文章名稱:關(guān)于關(guān)于序列自增實(shí)際應(yīng)用
文章轉(zhuǎn)載:http://www.rwnh.cn/article46/gopshg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、企業(yè)網(wǎng)站制作、關(guān)鍵詞優(yōu)化、網(wǎng)站改版、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)