資料庫之獲取最後一個自動生成的ID值的函式
阿新 • • 發佈:2018-12-16
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()只返回插入的第一行資料時產生的值.這裡為第一條記錄.