Oracle下觸發器實現主鍵自增
方法一:(SQL語句需要包含自增字段)
1. 創建自增序列:
CREATE SEQUENCE BOOTTIME_sequence INCREMENT BY 1 START WITH 1 NOMAXVALUE nocycle nocache 註釋: BOOTTIME_sequence: 自增序列名稱,BOOTTIME為表明 INCREMENT BY 1 : 每次加幾個 START WITH 1 : 從1開始計數 NOMAXVALUE: 不設置最大值 NOCYCLE : 一直累加,不循環 一旦定義了emp_sequence(此處為 BOOTTIME_sequence ),你就可以用CURRVAL,NEXTVAL. CURRVAL=返回 sequence的當前值。 NEXTVAL=增加sequence的值,然後返回 sequence 值。
2. 插入數據操作:實現ID自增,SQL語句需要填寫 自增字段
insert into BOOTTIME( ID, EQUIPMENT_ID, STARTTIME, STOPTTIME, TOTALTIME, BDATE) values( BOOTTIME_sequence.nextval, sysdate, (null), '2017-03-21' )
方法二:(SQL語句需要不用包含自增字段)
1. 創建自增序列:
CREATE SEQUENCE BOOTTIME_sequence INCREMENT BY 1 START WITH 1 NOMAXVALUE nocycle nocache 註釋: 一旦定義了emp_sequence(此處為 BOOTTIME_sequence ),你就可以用CURRVAL,NEXTVAL. CURRVAL=返回 sequence的當前值。 NEXTVAL=增加sequence的值,然後返回 sequence 值。
2. 創建觸發器:
create or replace trigger BOOTTIME_trigger before insert on BOOTTIME for each row begin select BOOTTIME_sequence.nextval into :new.ID from dual; end;
3. 插入數據操作:實現ID自增,以下插入語句中不用填寫自增項 ID
insert into BOOTTIME( EQUIPMENT_ID, STARTTIME, TOTALTIME,BDATE) values( 59635, (null), '2017-03-21' )
Tags:
文章來源: