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]"表示要實現自增的列所在的數據表

 

 

原文地址:https://www.cnblogs.com/imdeveloper/p/10334215.html
轉載請注明出處,謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM