Oracle 觸發器實現主鍵自增


(一)原因

  Oracle數據庫是不能像Mysql呢樣在創建表的時候直接設置主鍵自增的

  自己的項目前面是用的Mysql數據庫,現在要遷到Oracle上。插入數據時,報了違反唯一性約束,這就需要自己創建序列和觸發器進行主鍵的自增了。


 

(二)教程

  1 創建一個測試表

 create table tab_user(
    id number(11) primary key,
    username varchar(50),
    password  varchar(50)
 );

  2 創建一個序列 

create sequence seq_user
minvalue 1 
maxvalue 99999999 
start with 242 //start with 后面是數字(如果要建序列的這張表里沒有數據,就從1開始。如果有數據start with 為 最大的Id+1)
increment by 1 
nocache 
order;

  3 創建一個觸發器

CREATE OR REPLACE TRIGGER trg_seq_user
BEFORE INSERT ON tab_user     //表名 FOR EACH ROW 
BEGIN
SELECT  seq_user.nextval INTO :new.id FROM dual; 
END; 

  4 向表插入數據

insert into tab_user(username,password) values('admin','admin');
insert into tab_user(username,password) values('fgz','fgz');
insert into tab_user(username.password) values('test','test');
COMMIT

  5 查詢結果

  

 


 

 

 

   希望能更加熟練的使用Oracle數據庫。

 


免責聲明!

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



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