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开始。