今天想写一个主键自动增加的sql,就用了序列+触发器的方式,但是发现用sql方式查询序列的NEXTVAL值时,会使该值+1,致使表中的主键出现断号,有没有人知道是为什么呢?蟹蟹!
-- 创建序列
create sequence ID_INCREMENT_SEQ
MINVALUE 1
NOMAXVALUE
INCREMENT BY 1
START WITH 1
NOCACHE
NOCYCLE;
-- 创建触发器
create or replace trigger PK_ID_INCREMENT
before insert on USERS
for each row
begin
select ID_INCREMENT_SEQ.nextval into:new.id from dual;
end PK_ID_INCREMENT;
select ID_INCREMENT_SEQ.NEXTVAL from dual