现在有一个表address,有两个字段address_id(PK) number(9),name varchar(255)
address_id用的是seq_address_id
目前有一个程序在跑 前台传过来的订单,会插address表(用到seq_address_id),由于有时候订单错误,rollback
导致address表中address_id接不上,主键浪费现在seq_address_id已经超过了9位,但address_id中却有很多断带,
有没有一种方法或者方案解决这种主键浪费,而不影响系统效率

解决方案 »

  1.   

    address_id,9位是不可能更改了,因为这里面涉及到很多外健
    seq_address_id目前的情况是要超过9位,但address_id却有很多断带,
    有没有方法或者方案避免 这种断带的产生
      

  2.   

    1 可以加长id
    2 可以update表中的id列,让它连续,然后重建序列从最大值开始
      

  3.   

    那就别用sequence了,直接用程序进判断吧,但这样效率会很低.
      

  4.   

    lz 要的是:有没有方法或者方案避免 这种断带的产生正如lz 所说的:rollback 
    导致address表中address_id接不上那是不可避免的出现缎带,除非不用sequence