MySQL last_insert_id()函数
轉載自??MySQL last_insert_id()函數
MySQL LAST_INSERT_ID函數簡介
在數據庫設計中,我們經常使用代理鍵使用AUTO_INCREMENT屬性為主鍵列生成唯一的整數值。
當您將新行插入到具有AUTO_INCREMENT列的表中時,MySQL會自動生成一個唯一的整數,并將其作為主鍵列的值。
有關如何設置列的AUTO_INCREMENT屬性的更多信息,請查看MySQL序列教程。
您可以使用MySQL?LAST_INSERT_ID函數獲取生成的序列號,并此數字值使用在下一個語句中,例如:將其值作為新行的一個值插入到相關表中。
MySQL LAST_INSERT_ID示例
我們來看一下使用MySQL?LAST_INSERT_ID函數的例子。
首先,創建一個名為tbl的新表進行測試。在tbl表中,在id列上設置了AUTO_INCREMENT屬性。
USE testdb;CREATE TABLE tbl (id INT AUTO_INCREMENT PRIMARY KEY,description VARCHAR(250) NOT NULL );其次,向tbl表中插入一個新行記錄。
INSERT INTO tbl(description) VALUES('MySQL last_insert_id');第三步,使用MySQL?LAST_INSERT_ID函數來獲取MySQL生成的最后一個插入ID的值。
mysql> SELECT LAST_INSERT_ID() as lastID; +--------+ | lastID | +--------+ | 1 | +--------+ 1 row in set需要注意的是,如果使用單個INSERT語句將多行插入到表中,則LAST_INSERT_ID函數將返回第一行的最后一個插入ID。
假設AUTO_INCREMENT列的當前值為1,并在表中插入3行。當您使用LAST_INSERT_ID函數獲取最后一個插入ID時,將獲得2而不是4。
以下語句將向tbl表中插入3行,并使用LAST_INSERT_ID函數獲取最后一個插入ID值。
mysql> INSERT INTO tbl(description) VALUES('record 1'),('record 2'),('record 3');SELECT LAST_INSERT_ID(); Query OK, 3 rows affected Records: 3 Duplicates: 0 Warnings: 0+------------------+ | LAST_INSERT_ID() | +------------------+ | 2 | +------------------+ 1 row in set查看tbl表的數據:
mysql> SELECT * FROM tbl; +----+----------------------+ | id | description | +----+----------------------+ | 1 | MySQL last_insert_id | | 2 | record 1 | | 3 | record 2 | | 4 | record 3 | +----+----------------------+ 4 rows in setLAST_INSERT_ID函數基于客戶端獨立原則。這意味著特定客戶端的LAST_INSERT_ID函數返回的值是該客戶端生成的值。這樣就確保每個客戶端可以獲得自己的唯一ID。
在本教程中,我們向您展示了如何使用MySQL?LAST_INSERT_ID函數來獲取插入到表中的最后一行的序列號。
總結
以上是生活随笔為你收集整理的MySQL last_insert_id()函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对于Miss Group来说,任何项目都
- 下一篇: MySQL cast()函数