我用下面这个sql创建sequence生成主键,为什么ID号总是跳着,有什么好点的方法能解决下么,不好意思,就这点分了,望高手指点下,谢谢!
create sequence sequencename start with 1 INCREMENT BY 1

解决方案 »

  1.   

    自己生成个序列表?然后自己维护?
    又或者select max(id)+1 from table
      

  2.   

    呃...不过select max(id)+1 from table的话你要自己维护并发insert....
      

  3.   

    跳号应该是因为事务rollback或者数据库当机,导致部分已经产生的序列丢失造成的。如果跳号幅度比较大,应该是设置了cache之后,遇到数据库当机,重启后序列取cache的关系。
    目前看起来用sequence生成Key,不可避免出现跳号,若不想跳号,还是自己实现的好。
    个人愚见。
      

  4.   

    hibernate里用sequence的话只能那样啦,我也没办法。多谢啦。