String sql="insert PetInf(pet_name,pet_sex,pet_strength,pet_cute,pet_love,pet_intro,pet_owner_email,pet_owner_name,pet_password,pet_pic,pet_type) values(?,?,?,?,?,?,?,?,?,?,?);select @@identity"
.....
execute......???sql里面直接执行没有问题。但是如果放在java中。。要怎么办。。直接executeUpdate或者直接executeQurey都不行吧。
我想也不能先执行在查询。。因为那样如果有多个用户执行插入的话返回刚插入的id有可能会乱吧

解决方案 »

  1.   

    ResultSet getGeneratedKeys()??
    楼主是想要这个吗
      

  2.   

    可以分两步做吧第一步先执行Insert语句,执行成功后,然后再执行select @@identity取得SQL SERVER中自增加的主键值。
      

  3.   

    MySql数据库字段支持auto_incremental,为啥还要手动select @@identitity,程序中需要获取到刚插入的值的ID么?如果是需要区分每个执行insert操作的客户端的不同的新插入的ID值,有两个办法,一个是把你这段sql放到一个事务中并且定义MySql的事务级别为最高级(序列化),一个是用select last_insert_id()函数,这个是线程独立的,一个connection中只会返回这个客户端的插入的ID值