溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時間:2020-10-16 16:22:05 來源:億速云 閱讀:188 作者:小新 欄目:MySQL數(shù)據(jù)庫

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

在設(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)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI