1. 程式人生 > >oracle數據庫創建表且主鍵自增

oracle數據庫創建表且主鍵自增

創建 trigger contest 觸發器 create header 建表 div nextval

Oracle數據庫中,設置ID自增並不像MySQL中那麽簡單,Oracle中需要設置一個序列。

現在給出方式,具體如下:

第一步:建立一個表

create table ContestDB  
(  
   TID  NUMBER(10) PRIMARY KEY,  
   TEAMNUM varchar(50)  not null,  
    MARKNUM varchar(50)    
); 

第二步:設置ID自增

第一種方式:不使用觸發器

1 CREATE SEQUENCE SEQ_TID;  
2 INSERT INTO ContestDB VALUES(SEQ_TID.NEXTVAL,‘B20007009‘,‘B001 ‘);  
3 INSERT INTO ContestDB VALUES(SEQ_TID.NEXTVAL,‘B20007010‘,‘B003 ‘);

第二種方式:使用Trigger 觸發器

 1 --自定義一個序列  
 2  create sequence ContestDB_sequence    
 3        increment by 1 --每次增加幾個,我這裏是每次增加1  
 4        start with 1   --從1開始計數  
 5        nomaxvalue      --不設置最大值  
 6        nocycle         --一直累加,不循環  
7 nocache --不建緩沖區 8 --創建一個觸發器 9 CREATE TRIGGER ContestDB_trigger 10 BEFORE INSERT ON ContestDB 11 FOR EACH ROW 12 WHEN (new.TID is null) --只有在tid為空時,啟動該觸發器生成tid號 13 begin 14 select ContestDB_sequence.nextval into :new.TID from sys.dual; 15 end; 16
17 insert into ContestDB(TEAMNUM,MARKNUM) values(‘A20007013‘,‘A002‘); 18 19 insert into ContestDB(TEAMNUM,MARKNUM) values(‘A20007014‘,‘A003‘);


oracle數據庫創建表且主鍵自增