Oracle 临时表序号问题?

pp1885 2007-03-17 10:19:16
我创建了一个全局的临时表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;
...全文
300 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhp6489 2007-03-17
  • 打赏
  • 举报
回复
为什么需要一个触发器来生成一个序号呢?ORACLE有很多函数可以生成序号的
pp1885 2007-03-17
  • 打赏
  • 举报
回复
改如何改啊,我插入临时表是写在程序包体里面的,如果execure imm...的话,我在 asp.net程序中调用 提示权限不足,能否给个例子啊,谢谢
CathySun118 2007-03-17
  • 打赏
  • 举报
回复
你应该在每次插入之前把你的序列的当前值改为0。序列是记忆最后一次的值的。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧