public int executeUpdate(String sql,int autoGeneratedKeys) throws SQLException
其实要看驱动支不支持的

解决方案 »

  1.   

    Insert之后再Select出来,在或者使用一些和DBMS相关的命令可以做到
      

  2.   

    楼主的 firmbird(firmbird) 的方法先试试
      

  3.   

    我的做法是,首先找到这个自增字段的名字,比如SEQ_AUTH_CERT_ID;
    如果要得到最新更新的id就首先
    String sql1="select SEQ_AUTH_CERT_ID.nextval from dual";
    去得到这个最新的id!然后再insert!
      

  4.   

    要分两部走的~~
    update 之后是不能直接获得IDENTITY列的值的。
    你必须在select才能获得。当然还有方法是一步可以实现的,先打开ResultSet
    设定游标类型是可修改的。
    此时你就可以获得列的值,也可以对记录进行修改。
      

  5.   

    楼上的  jacky_fan(窗外) :String sql1="select SEQ_AUTH_CERT_ID.nextval from dual";执行错误啊。
    MSSQL2000没有这个函数吧,
    MySQL才有
      

  6.   

    不同的数据库有不同的方法.SQLServer可以执行insert语句后从系统变量@IDENTITY中取得主键值,Oracle可以从序列中取得就是楼上的Sequence.nextval后再插入到表中。
      

  7.   

    INSERT INTO jobs (job_desc,min_lvl,max_lvl)
    VALUES ('Accountant',12,125)
    SELECT @@IDENTITY AS 'Identity'
      

  8.   

    ,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函数类似。 @@IDENTITY 和 SCOPE_IDENTITY 将返回在当前会话的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回任何会话和任何作用域中为特定表生成的标识值。你可以看一下SQLServer的联机帮助中的相关章节
      

  9.   

    用insert 语句添加后,再select * from infos order by sid desc 再在结果集把第一条记录拿出来(第一条就是新增记录的sid)
      

  10.   

    用insert 语句添加后,再select * from infos order by sid desc 再在结果集把第一条记录拿出来(第一条就是新增记录的sid)需要session
      

  11.   

    是不是还可以这样:比如infos这个table有sid, name, address这些feild, 可以先insert name address这两个feild, 然后依据name address 再去把新插入的record 的sid 找出来,只是特麻烦.........