當我們插入一條數據的時候,我們很多時候都想立刻獲取當前插入的主鍵值返回以做它用。我們通常的做法有如下幾種:
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>