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