Oracle 临时表序号问题?
我创建了一个全局的临时表Creage global temporary table tmp(id int not null,cid int)on commit delete rows;
insert into tmp(cid) select channelID from B表 (其中临时表的id我是用触发器自动增加的)
但是我第一次访问的时候创建的这个id的序号是正确的,比如21条数据 但是第2 次在访问的时候,这个序号就又加了,也就是说,我的数据只有21条,每次插入临时表的序号也就从1到21 而不是下次访问就从22....开始,我这个创建的临时表有问题还是触发器有问题,该如何改,谢谢!
创建触发器自动插入序号
create or replace trigger trg_test
before insert on tmp
for each row
begin
select seq.nextval into :new.id from dual ;
end trg_test;
------解决方案--------------------你应该在每次插入之前把你的序列的当前值改为0。序列是记忆最后一次的值的。
------解决方案--------------------为什么需要一个触发器来生成一个序号呢?ORACLE有很多函数可以生成序号的