ORACLE 下触发器实现主键自增
方法一:(SQL 语句需要包含自增字段)1. 创建自增序列:2. 插入数据操作:实现 ID 自增,SQL 语句需要填写 自增字段
- 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 值。
方法二:(SQL 语句需要不用包含自增字段)1. 创建自增序列:
- insert into BOOTTIME( ID, EQUIPMENT_ID, STARTTIME, STOPTTIME, TOTALTIME, BDATE) values( BOOTTIME_sequence.nextval, sysdate, (null), '2017-03-21' )
2. 创建触发器:
- CREATE SEQUENCE BOOTTIME_sequence INCREMENT BY 1 START WITH 1 NOMAXVALUE nocycle nocache注释: 一旦定义了emp_sequence(此处为 BOOTTIME_sequence ),你就可以用CURRVAL,NEXTVAL. CURRVAL=返回 sequence的当前值。 NEXTVAL=增加sequence的值,然后返回 sequence 值。
3. 插入数据操作:实现 ID 自增,以下插入语句中不用填写自增项 ID
- create or replace trigger BOOTTIME_trigger before insert on BOOTTIME
- for each row begin select BOOTTIME_sequence.nextval into: new.ID from dual;
- end;
- insert into BOOTTIME( EQUIPMENT_ID, STARTTIME, TOTALTIME,BDATE) values( 59635, (null), '2017-03-21' )
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2017/03-22/19254432.html