Oracle中如何用序列和觸發(fā)器實現(xiàn)ID自增

小編給大家分享一下Oracle中如何用序列和觸發(fā)器實現(xiàn)ID自增,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

克州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

在設(shè)計數(shù)據(jù)庫的時候,Oracle中沒有類似SQL Server中系統(tǒng)自動分配ID作為主鍵的功能,這時Oracle可以通過“序列”和“觸發(fā)器”來實現(xiàn)ID自動增加的功能。

1.創(chuàng)建序列Sequence

create sequence seq_uid
  increment by 1   
  start with 1    
  nomaxvalue    
  nocycle   
  cache 10 ;

其中:"seq_uid"表示自定義的序列名稱;

"start with 1"表示序列值從1開始;

"increment by 1"表示序列每次增加的值為1。

序列的使用方法:

select seq_uid.nextval ID from dual

這樣就得到了序列的下一個值,將這個語句放在觸發(fā)器中,就可以實現(xiàn)類似SQL Server中ID自增的功能。

2.創(chuàng)建觸發(fā)器Trigger

create trigger tri_uid before insert on [tablename] for each row when (new.[columnname] is null)
begin
    select seq_uid.nextval into:new.[columnname] from dual;
end;

其中:"tri_uid"表示自定義的觸發(fā)器名稱;

"seq_uid"表示要使用的序列名稱;

"[columnname]"表示要實現(xiàn)自增的列;

"[tablename]"表示要實現(xiàn)自增的列所在的數(shù)據(jù)表。

看完了這篇文章,相信你對Oracle中如何用序列和觸發(fā)器實現(xiàn)ID自增有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

新聞標(biāo)題:Oracle中如何用序列和觸發(fā)器實現(xiàn)ID自增
文章起源:http://muchs.cn/article14/gppoge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google微信公眾號、移動網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、品牌網(wǎng)站制作、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)