首页 >数据库 >mysql教程 >在MySQL中插入多行后如何检索ID?

在MySQL中插入多行后如何检索ID?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-24 10:57:10359浏览

How to Retrieve IDs After Inserting Multiple Rows in MySQL?

在 MySQL 中通过 ID 检索插入多行

将数据插入 MySQL 表通常通过 LAST_INSERT_ID 返回新创建行的 ID () 功能。然而,在插入多行时,获取 ID 数组可能会很困难。

使用 InnoDB 进行批量插入

对于使用最新 MySQL 版本的 InnoDB 表,您可以使用LAST_INSERT_ID() 和 ROW_COUNT() 的组合来检索插入的 ID。当 innodb_autoinc_lock_mode 设置为 0(传统)或 1(连续)时,InnoDB 为批量插入提供顺序自动递增 ID。

检索 ID 范围

假设批量插入声明已执行:

INSERT INTO table (`column1`, `column2`) VALUES ..., ..., ...

您可以使用以下公式计算新插入的行的 ID 范围:

INSERTED_ID_RANGE = [LAST_INSERT_ID(), LAST_INSERT_ID() + ROW_COUNT() - 1]

示例

考虑以下批量插入:

INSERT INTO table (`column1`, `column2`)
VALUES (1, 'value 1'), (2, 'value 2'), (3, 'value 3');

假设LAST_INSERT_ID() 插入后为 5,则插入的 ID 范围为:

[5, 5 + ROW_COUNT() - 1] = [5, 5 + 3 - 1] = [5, 7]

因此,插入的 ID 数组为 [5, 6, 7]。

以上是在MySQL中插入多行后如何检索ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn