aoi.tsukasa 2021-10-01 23:11 采纳率: 75%
浏览 31
已结题

在Oracle中,为什么我每次用sql语句查询序列的NEXTVAL值,会使该值自动+1

今天想写一个主键自动增加的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
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月9日
    • 创建了问题 10月1日