oracle用触发器实现插入记录序列自增长(也可以指定记录序号)

来源:互联网 发布:java socket bind 编辑:程序博客网 时间:2024/06/07 16:45
create or replace trigger temp_trigger  before insert on temp    for each rowdeclare  interval_id number(16);beginif :new.id is  null then  select min(new_id) into interval_id from (select bb+1 new_id from      (select id , lag(id,1,0) over(order by id) bb  from temp) where id-bb>1);  if interval_id is not null then  :new.id := interval_id;  else  --  select temp_seq.nextval into temp_id from dual;  --  :new.id := temp_id;  select max(id) into interval_id from temp;  :new.id := interval_id+1;  end if;end if;end temp_trigger;/
0 0