MySQL LAST_INSERT_ID函数
时间:2019-02-04 12:52:48 来源:igfitidea点击:
本MySQL教程通过语法和示例说明了如何使用MySQL LAST_INSERT_ID函数。
描述
MySQL LAST_INSERT_ID函数将返回第一个AUTO_INCREMENT值,该值是由最新的INSERT或UPDATE语句设置的。
语法
MySQL中LAST_INSERT_ID函数的语法为:
LAST_INSERT_ID( [expression] )
expression可选的。如果指定了expression,则LAST_INSERT_ID将返回该值,并被记为LAST_INSERT_ID函数下一次返回的值。
说明
- 如果最新的INSERT或UPDATE语句设置了多个AUTO_INCREMENT值,则LAST_INSERT_ID函数将只返回第一个AUTO_INCREMENT值。
- 对于每个连接,LAST_INSERT_ID函数返回的AUTO_INCREMENT值是独立的,不受其他连接影响。
示例
假设有一个employees表,AUTO_INCREMENT字段为EmployeeID:
CREATE TABLE `employees` ( `EmployeeID` int(11) NOT NULL AUTO_INCREMENT , `LastName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `FirstName` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `Title` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`EmployeeID`) ) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
现在有10条记录。
然后我们执行INSERT插入语句:
INSERT INTO `employees` (LastName, FirstName, Title) VALUES ( 'yunkai', 'biji', 'testtitle',
那么执行LAST_INSERT_ID函数, 将返回最新的AUTO_INCREMENT值。
mysql> SELECT LAST_INSERT_ID(); Result: 11
修改表单的AUTO_INCREMENT值。
我们还可以通过ALTER语句修改表的AUTO_INCREMENT值。
ALTER TABLE `employees` AUTO_INCREMENT=20;
那么下一条插入记录的EmployeeID将从20开始。