当前位置: 代码迷 >> Oracle开发 >> oracle sequence 不连续、相差太大有关问题
  详细解决方案

oracle sequence 不连续、相差太大有关问题

热度:494   发布时间:2016-04-24 06:40:43.0
oracle sequence 不连续、相差太大问题
我用 sequence 生成主键,cache 值设为20 。发现了一个异常,那就是生成的主键不连续,比如说上个数字是4551552,下个就成了4552838 ,差别实在是太大了。我的代码里调用该 sequence.nextval 只有一处啊,没有其他地方调用 nextval 。
这期间数据库没挂掉过、也没宕机过。
这应该不是正常的跳号的现象吧,毕竟相差太大了啊?请问各位,这有可能是什么原因呢?
拜谢。。。
------解决方案--------------------
引用:
Quote: 引用:

看看你的步长,设置的是多少 ?



select  sequence_name, increment_by from user_sequences 

-- 看看 
是1 啊
会不会是 merge into 语句引起的啊?


你提到了 Merge into ,那就有可能是这个问题。
比如你 


select myseq.nextval from user_objects 这样一下子就会用 count(*) 这么多个。

-- 4551552,下个就成了4552838 
-- 这样解决就是通的。
  相关解决方案