数据库插入数据返回当前自增主键ID值的方法

时间:2021-01-20 13:55:21

当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用。我们通常的做法有如下几种:

1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库;

2. 使用特定数据库的 auto_increment 特性,在插入数据完成后,使用 select max(id) 获取主键值;

3. 但要获取此ID,最简单的方法就是在查询之后select @@indentity。

sql代码:

INSERT INTO table_name (.....) VALUES(......)  SELECT @@IDENTITY AS ID;

例如在ibatis中的一种用法(mysql数据库):

<insert id="insertAppKey" parameterClass="AppKey">
        insert into ali_appkey (PK,AK,SECRET,CREATEDATE,STATE) values(#pk#,#ak#,#secret#,#createdate#,#state#)
        <selectKey resultClass="int" keyProperty="id" >  
              SELECT @@IDENTITY AS id  
        </selectKey> 
    </insert>