天天看點

oracle 觸發器生成id,Oracle中用序列和觸發器實作ID自增的方法(代碼示例)

本篇文章給大家帶來的内容是關于Oracle中用序列和觸發器實作ID自增的方法(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

在設計資料庫的時候,Oracle中沒有類似SQL Server中系統自動配置設定ID作為主鍵的功能,這時Oracle可以通過“序列”和“觸發器”來實作ID自動增加的功能。

1.建立序列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

這樣就得到了序列的下一個值,将這個語句放在觸發器中,就可以實作類似SQL Server中ID自增的功能。

2.建立觸發器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"表示自定義的觸發器名稱;

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

"[columnname]"表示要實作自增的列;

"[tablename]"表示要實作自增的列所在的資料表。