日期:2014-05-17  浏览次数:20976 次

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有很多函数可以生成序号的