我刚插入一条语句,里面有个序列,我怎么获取这个序列值是多少?我要插入成功后,马上返回,不是 用curnext,这个多线程是不是有点问题呢?有什么好方法呢

解决方案 »

  1.   

    你用的是什么数据库哦,如果是oracle,分两步处理 :第一步 ,select seq.nextval from dual 得到序列值,第二部,用这个序列值插入。这样不需要写触发器。 这也是很好的办法。如果你先插入再currentval,有可能得到的并不是你插入的那个值,因为有可能在你调用的时候别人又插入了一条,这样就得到的就是后面一个的值了。
      

  2.   

    还有没有好点方法呢?我用oralce
      

  3.   

    我就是想获得insert into sjw (id.nextval)插入后,id的值
      

  4.   

    用写一个基于insert的触发器..
      

  5.   

    晕,偶不是说得很清楚了么,先执行select seq.nextval from dual 得到序列值,然后再用这个序列值作为参数传递进去插入记录。 千万不要用触发器。
      

  6.   


    插完后  取id.currentval就有了 一定要马上取才有的这个 不知道对不 我以前这样做过的。 和6楼的意见是一致的 
      

  7.   

    楼主可以看看 Oracle 的 JDBC Developer's Guide and Reference 采用 JDBC 3.0 中的
    getGeneratedKeys 方法。http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/jdbcvers.htm#sthref110
      

  8.   

    getGeneratedKeys取得只是ROWID的值吧,我在实验中发现是这样的或者是我用错了?