Oracle 10.0+java
 sql="select   id,roomId   from   a   where   id  is   null";   
      stmt   =   conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);   //CONCUR_READ_ONLY   
      rs=stmt.executeQuery(sql);     
      rs.moveToInsertRow();   
      rs.updateString(2,   "279332");   
      rs.insertRow();   
      //新增结束后显示该自动编号的值   
      rs.moveToInsertRow();//估计是这一句跳到刚才新增的那条记录上   
      out.println("新增记录的ID是:"+rs.getString("id")+"<br>");   
      rs.close();   
      stmt.close();   
请大侠们指导,如何取得自动编号字段,新增记录后该字段的值

解决方案 »

  1.   

    插入时的sql是怎样的?seq.nextval获得下一编号,seq.currval返回当前值。我想比较好的方式是直接insert into a values(seq.nextval,‘279332’);
    然后用select seq.currval from dual得到刚才插入的值
      

  2.   

    一般我们都是建个序列
    CREATE SEQUENCE seq_name;
    直接用seq_name.nextval插入到id字段实现自增
      

  3.   

    取出是什么意思
    select id from ..不就行了吗
      

  4.   

    在插入一条记录之后,取出插入记录的自动增长主键,是没有where条件的。
      

  5.   

    select max(id) from table;
      

  6.   

    这个自动增长列应该写在一个触发器里的,问下数据库的人这个序列名是什么
    然后select seq.currval from dual;
      

  7.   

    要是多人同时录入的话select seq.currval from dual可能也会不准确
    用行级触发器,输出:new.id应该可以吧