Oracle数据库在进行insert操作的时候 是不会自己进行主键自增的,这是和Mysql不一样的地方。需要通过触发器和序列来完成主键自增的。
1、创建序列
WJSC_id_increment -- 是序列名称 可以自定义
CREATE SEQUENCE WJSC_id_increment
INCREMENT BY 1
START WITH 1
MAXVALUE 1.0E20
MINVALUE 1
NOCYCLE
CACHE 20
NOORDER
2、创建触发器
create or replace trigger WJSC_id_trigger(触发器名称)
before insert on WJSC(表名)
for each row
begin
select WJSC_id_increment.nextval into :new.id from dual;
end;
想让当前触发器的id回到从一开始,可进行如下操作
1、查看下一次的id是多少
select WJSC_id_increment.NEXTVAL from dual;
如果查询结果,是21
2、alter sequence WJSC_id_increment increment by -20; //注意是-(n-1)
最后要执行下面这一句,每次id增加多少
3、alter sequence WJSC_id_increment increment by 1;
注意:如果让id值回到1的以后,一定要执行第三条语句,负责进行下一次插入操作时会报错。