为什么我的触发器增加2而不是1?

时间:2017-03-05 02:55:36

标签: sql oracle auto-increment

这是我的序列

CREATE SEQUENCE exp_seq 
  START WITH 3 
  INCREMENT BY 1
  Cache 100;

触发:

create or replace TRIGGER auto_increment_reimb_id
BEFORE INSERT ON EXPENSE_TABLE
FOR EACH ROW
  BEGIN
    if :new.exp_id is null
    then SELECT exp_seq.nextval into :new.exp_id from dual;
    end if;
  END;

我的Sql插入声明:

INSERT INTO EXPENSE_TABLE(USER_ID,AMOUNT,TIME_SUBMITTED,DESC,STATUS,TYPE_ID) VALUES(?,?,?,?,?,?)

我的第一个插入将增加1.但后续插入将增加2。 我没有在insert语句中传入pk id,只调用它来触发更新。所以我不明白为什么会这样。 在第一次插入时,pk列为4.在第二次插入时,它变为6.

0 个答案:

没有答案