本人在建自增长触发器时碰到“索引中丢失in或out参数::1”,在网上也没有找到解决办法,请问这怎么处理?谢谢!

解决方案 »

  1.   

    插入数据时,直接用insert into tname values(SEQ.nextval,其它字段值),不用先去读序列的最新值啊。这样就100分的可靠了。
      

  2.   

    看起来好像可以,但SEQ.nextval也是要取一个值再加1,只是把它放到oracle里做,时间上有优势。但我不知道如果有1000个用户同时insert的话,它还能不能保证。
      

  3.   

    你要这样想的话,具体SEQ原理我也不清楚,但可以提供一个万分安全的办法给你那就每次插入前先select * from T for update把整个表给锁住。然后再insert into tname values(SEQ.nextval,其它字段值),然后commit提交这样锁就被放开了....保证无论何时只有一个人在操作这个表