ORACLE下触发器实现主键自增
程序员文章站
2022-04-23 17:00:32
ORACLE下触发器实现主键自增
方法一:(SQL语句需要包含自增字段)
1. 创建自增序列:
CREATE SEQUENCE BOOTTIME_sequence
I...
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' )