使用一下查询
select 序列名.currval,序列名.nextval from dual
为什么会出现两个相同的值?

解决方案 »

  1.   

    在一个sql语句中,序列只按照你incrment by的值增加一次,即使一个SQL语句中多次使用nextval,也只增加一次,所以每次nextval出现在同一SQL语句中返回相同的值。
      

  2.   

    currval和nextval出现在同一个SQL语句中,序列也只增加一次,与顺序无关。
      

  3.   


    currval 是当前会话里序列的值 没有会话会报错
    nextval 是当前会话里序列自增一次后的值,不会报错
    你的一个sql还能分解成两个会话?
      

  4.   

    如果你限制性  select currval 然后执行 nextval 就会不一样了。