怎么解决跳号问题?

AlexMoonshadow 2012-06-12 10:57:14
我用下面这个sql创建sequence生成主键,为什么ID号总是跳着,有什么好点的方法能解决下么,不好意思,就这点分了,望高手指点下,谢谢!
create sequence sequencename start with 1 INCREMENT BY 1
...全文
207 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小德 2012-06-12
  • 打赏
  • 举报
回复
跳号应该是因为事务rollback或者数据库当机,导致部分已经产生的序列丢失造成的。如果跳号幅度比较大,应该是设置了cache之后,遇到数据库当机,重启后序列取cache的关系。
目前看起来用sequence生成Key,不可避免出现跳号,若不想跳号,还是自己实现的好。
个人愚见。
talentwing 2012-06-12
  • 打赏
  • 举报
回复
呃...不过select max(id)+1 from table的话你要自己维护并发insert....
talentwing 2012-06-12
  • 打赏
  • 举报
回复
自己生成个序列表?然后自己维护?
又或者select max(id)+1 from table
AlexMoonshadow 2012-06-12
  • 打赏
  • 举报
回复
hibernate里用sequence的话只能那样啦,我也没办法。多谢啦。

[Quote=引用 1 楼 的回复:]

自己生成个序列表?然后自己维护?
又或者select max(id)+1 from table
[/Quote]
AlexMoonshadow 2012-06-12
  • 打赏
  • 举报
回复
好吧,谢谢。

[Quote=引用 3 楼 的回复:]

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

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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