使用cache的话,数据库会提前取出制定个数的值,在请求序列值的时候会随机从已经取出的值中选择一个返回
因此使用cache的时候取出的序列值有可能不是顺序产生的,可能会出现乱序的现象
但是这也不会发生主键冲突的,每个值只会被取出一次,想不通因为啥啊
没人改过序列,是否有人改过表中的数据呢,可以核实一下

解决方案 »

  1.   

    LZ 你这张表的ID ,是通过触发器方式从序列取的值的吗?如果不是,那就有人没有按你的规则在表中写数据了。如果是,有点怪了,这个只可能大,小的可能性,没有。
      

  2.   

    SEQUENCE 的cache确实会导致跳号问题,比如cache为100,如果初次走到95,数据当掉了,下次重启时会从101开始。
    你的序列只到10012,而数据库中的数据已经到了10267,原因只能有两种:
    1、程序代码逻辑问题,仔细找,应该是一个非正常操作流程导致的逻辑问题;
    2、有谁手动插入数据。