新聞中心
在一些業(yè)務表中原本不需要ID字段作為唯一標識,可是在后期為了方便和需求要在數(shù)據(jù)表中加ID列作為主鍵或者外鍵!那么下面總結了兩種方式:
成都創(chuàng)新互聯(lián)公司服務項目包括旅順口網(wǎng)站建設、旅順口網(wǎng)站制作、旅順口網(wǎng)頁制作以及旅順口網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,旅順口網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到旅順口省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
解決方案一:
序列+UPDATE,原表有數(shù)據(jù)想新增一列ID,自動增值
1、創(chuàng)建序列
格式:
create sequence test_seq
start with 1--起始位1
increment by 1--根基需求,每次增加多少
minvalue 1--最小值
maxvalue 999--根據(jù)需求最大值
nocache--無緩存
詳細請看本人博客序列介紹
2、進行插入
格式:
update 表 set ID=test_seq.nextval;--原數(shù)據(jù)表中有多少行,ID就會插入多少行
注意這是更改!也就是說原來你表中ID如果有數(shù)據(jù)將會被覆蓋
本方法適用于新建ID列無數(shù)據(jù),不牽扯其余列動作指令,保證數(shù)據(jù)完整性,大多數(shù)序列用于自動增長
解決方案二:
另一種場景就是想來點高端的(特殊場景),當我插入或者更改某列,把數(shù)據(jù)按照序列增長的步調(diào)來實現(xiàn)
序列+觸發(fā)器+游標
1、創(chuàng)建序列
格式:
create sequence test_seq
start with 0--起始位
increment by 3--每次我想增加3
minvalue 1--最小值
maxvalue 999--根據(jù)需求最大值
nocache--無緩存
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;
如果愛有需求可以整個游標,這里不再掩飾,因為如果單存對序列等一類問題操作,這樣就復雜化會增加數(shù)據(jù)庫和后期維護的成本負擔。
當前名稱:關于關于序列自增實際應用
網(wǎng)頁地址:http://ef60e0e.cn/article/gopshg.html