SQL: insert into 表后获得自动插入的id

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:34   2067   0
运行完插入语句insert into后,执行select @@identity就可得到自动生成的id

  int temp=0;
String sql="insert into tb_order(name) values("+uname+"')";
connDB.executeUpdate(sql);
ResultSet rs_o = connDB.executeQuery("select @@IDENTITY as newID");
while(rs_o.next())
{
temp=rs_o.getInt("newID");
}

可以取出自动生成的newID.

如果是sql server 最好用select SCOPE_IDENTITY() as id
因为@@identity全局的

同类似的还有IDENT_CURRENT(‘table’)

[b]IDENT_CURRENT[/b] 返回为任何会话和任何作用域中的特定表最后生成的标识值。[b]IDENT_CURRENT [/b]不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
[b]@@IDENTITY [/b]返回为当前会话的所有作用域中的任何表最后生成的标识值。
[b]SCOPE_IDENTITY[/b] 返回为当前会话和当前作用域中的任何表最后生成的标识值

[b]SCOPE_IDENTITY 和 @@IDENTITY [/b]返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP