select seqname.currval from dual;

解决方案 »

  1.   

    插入的 时候是 autocommit . 然后有多条 insert 并行执行. 马上执行select, currval的值是不是也 不能保证我刚才 插入的哪条语句 的序号吧. ? 是不是要弄一个事务控制? 有没有简单一点的办法??
      

  2.   

    seq_name.currval. 其他操作没关系的,seq_name会分配另一个值给nextval的.
      

  3.   

    你可以现将 seq_name.nextval的值传给变量,在将变量的值插到数据库表,
    变量就记录了当前插入的值,如果有n个,你就用多个变量(当然具体要根据你的设计来做咯)
      

  4.   

    我觉得 还是没有解决问题. 
    我在不知情的情况下 insert了2条后 再查询 currval .currval 已经不是当前插入的值了. 
    我觉得可以用触发器或者事务解决. insert 和 select 作为一个完整事务加锁.
    或者我再程序里用 序列化加锁 控制 期待有更好的方法...? 会给分的
      

  5.   

    将 seq_name.nextval的值取出来再写入数据库不就行了
      

  6.   

    select seq_name.nextval sqid FROM DUAL取sqid的值就行了