您的位置:首页 > 数据库 > Oracle

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

2015-08-18 08:57 615 查看
create or replace trigger temp_trigger
before insert on temp
for each row
declare
interval_id number(16);

begin
if :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;
/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: