数据库表中有一列id,它是自动增长的。当我插入一条数据以后,怎么得到这个id是多少? 
例如表有3列:ID、NAME,AGE 
其中ID自动增长。 
当我插入数据(TOM,20)后,怎么获得这个ID的值?前面有热心的前辈告诉我在sqlserver中有三种方法:

SQL SERVER中的三种获得自增长ID的方法 
例子: 
      insert into users(Code,name) values('1111','aaaa') 
      select  SCOPE_IDENTITY() 
      select  @@IDENTITY 
      select  IDENT_CURRENT('users')
 但是在oracle中用什么方法?
谢谢!

解决方案 »

  1.   

    select sequence.currval from dual不知道对不对!呵呵
      

  2.   

    没办法啊!.net区的人好像都是用sqlserver的,看来还得去oracle区发个贴了!哎!
      

  3.   

    前面看到个很傻的方法:
    select max(id) from table这个好像太原始了!效率太低!
      

  4.   

    在数据库中为这个表的id字段建立序列,查询的时候,自动会获得id的值
      

  5.   

    CREATE SEQUENCE s_table;
    SELECT s_table.nextval FROM dual;
    SELECT s_table.currval FROM dual;(可以不要)
      

  6.   

    用序列可以解决这个问题。
    SELECT s_table.nextval FROM dual; 
      

  7.   

    用序列是跟本解决不了问题的,如果他批量插入,用楼上的所有.nextval 的方式只能得到最后一个ID的值而且还比你
    实际ID值大1个数,我也在学习中
      

  8.   

    用序列seq的话,插入前先通过"select seq.nextval from dual",获取要插入的id,然后把这个id和别的值一起插入到数据库。
    但是现在我用了序列和触发器,所以只能先插入数据(不包括id)以后,通过“select seq.currval from dual”可以获取刚才插入的id。