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

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

Mary-Kate Olsen
发布: 2024-12-24 10:57:10
原创
395 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板