ORACLE設定遞增主鍵

lingxyd_0發表於2011-12-22

 

ORACLE設定主鍵是不會自動增加的,這個和SqlServer是不一樣的,在oracle中所以必須用 序列 和 觸發器 來完成主鍵的遞增。


1建立資料表

create table Test_Increase(  
            userid number(10) primary key,  /*建立主鍵*/  
            username varchar2(20)  
            );  

create table Test_Increase(
            userid number(10) primary key,  /*建立主鍵*/
            username varchar2(20)
            );
2建立自動增長序列 
CREATE SEQUENCE TestIncrease_Sequence  
INCREMENT BY 1   -- 每次加幾個    
      START WITH 1     -- 從1開始計數    
      NOMAXVALUE       -- 不設定最大值    
      NOCYCLE          -- 一直累加,不迴圈    
      CACHE 10;   

CREATE SEQUENCE TestIncrease_Sequence
INCREMENT BY 1   -- 每次加幾個  
      START WITH 1     -- 從1開始計數  
      NOMAXVALUE       -- 不設定最大值  
      NOCYCLE          -- 一直累加,不迴圈  
      CACHE 10; 
3建立觸發器
CREATE TRIGGER Test_Increase BEFORE  
insert ON   Test_Increase FOR EACH ROW  
begin  
select TestIncrease_Sequence.nextval into:New.userid from dual;  
  
end;  


 

使用方法

insert into Test_Increase (username) values ('人員');   正確

insert into Test_Increase values ('人員);                    錯誤,沒有足夠的值

insert into Test_Increase (userid,username) values ('人員); 錯誤,沒有足夠的值

相關文章