1. 程式人生 > >資料庫之獲取最後一個自動生成的ID值的函式

資料庫之獲取最後一個自動生成的ID值的函式

    last_insert_id()函式自動返回最後一個insert或update為auto_increment列設定的第一個發生的值.該函式在你建立完表後使用插入語句insert一條記錄一條記錄進行插入時沒有問題,但是當你使用insert語句同時插入多條記錄時會出現與你理解上的不同,下面我們通過程式碼來講解:

mysql> create table one(
    -> Id int auto_increment not null primary key,
    -> name varchar(30)
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> insert into one values(null, 'kevin'),(null, 'michal'),(null,'nick');
Query OK, 3 rows affected (0.08 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from one;
+----+--------+
| Id | name   |
+----+--------+
|  1 | kevin  |
|  2 | michal |
|  3 | nick   |
+----+--------+
3 rows in set (0.01 sec)

mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)

你最後會疑問,你明明插入了三條記錄,可為什麼最後返回的id值為1.

這是因為當使用一條insert語句插入多個行時,last_insert_id()只返回插入的第一行資料時產生的值.這裡為第一條記錄.