_insert_idMySQL中使用Last_Insert_ID函数获取自增ID(mysqllast)

MySQL中使用Last_Insert_ID函数获取自增ID是一个比较简单但又十分常用的技术。本文将详细介绍MySQL里使用Last_Insert_ID函数处理自增ID的相关内容,并给出部分代码示例。

Last_Insert_ID可以在MySQL里简单的使用,它表示的是上一个INSERT或UPDATE成功执行批操作后的最后一条记录的自增ID值。它可以通过SELECT语句获取,也可以通过SQL变量获取,示例如下:

//SELECT获取

SELECT LAST_INSERT_ID();

//SQL变量获取

SET @LastID=LAST_INSERT_ID();

MySQL中支持一次性插入或者更新多条记录,比如INSERT INTO … VALUES和UPDATE … SET语句,此时Last_Insert_ID会返回最后一次操作影响到行数据的自增ID值,而不是批量操作生成的多条记录自增ID之和。举个简单的例子,比如有一张表,它有三个自增字段id、otid和tid,现在我们要进行一次插入或更新操作,示例如下:

INSERT INTO table_name (otid,tid) values (1,2),(3,4);

我们执行这条语句后,会生成两条数据,每一条数据的otid、tid分别是1,2和3,4,同时它们的ID值分别是1000和1001。此时我们执行SELECT LAST_INSERT_ID()或者SET @LastID=LAST_INSERT_ID();,这时Last_Insert_ID会返回1001,而不是批量操作生成的总记录数(2)。

通常我们可以用这个特性结合AUTO_INCREMENT来实现一些功能,比如可以用LAST_INSERT_ID函数来获取数据插入后的自增ID,再保存到其他表中,也可以用在一些事务处理。

综上所述,Last_Insert_ID是一个比较常用的MySQL函数,它可以在一定程度上方便我们处理数据库中的自增ID,其使用也很简单。


数据运维技术 » _insert_idMySQL中使用Last_Insert_ID函数获取自增ID(mysqllast)