mysql - PDO 获取多个插入 ID

标签 mysql sql insert pdo last-insert-id

使用 PDO 运行以下查询(实际上,我使用准备好的语句但同样的问题)

插入 MyTable(MyField) VALUES('Row1'), ('Row2')

如何获取与 Row1Row2 相关的记录的 ID?

$db->lastInsertId() 字面上返回最后一个 Id。

取最后一个 ID 减去记录数并假设该范围涵盖我的所有记录是否足够?可以有差距/跳跃。这个查询保证是原子的吗?

最佳答案

如果您使用的是 MyISAM 表,那么由于表级锁定机制,您只能获得一系列 ID。

看完http://dev.mysql.com/doc/refman/5.5/en/innodb-auto-increment-handling.html#innodb-auto-increment-traditional假设您正在使用“传统的”innodb 锁定(您可能是),那么对于单个语句,ID 集将是连续的。

关于mysql - PDO 获取多个插入 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5941275/

相关文章:

php - 删除和重新索引数组时遇到问题

sql - 比较 SQL Server 2008 中删除和插入的表

c# - 无效的对象名称(即使存在)

php - 为什么我的 PHP 查询在页面加载时执行两次?

php - Mysqli 插入不工作。没有错误弹出

C++:使用 std::function 在多重集中插入​​元组,并保持顺序

javascript - 如何在午夜从表中删除mysql数据?

php - 如何使用 Codeigniter 互连三个 mysql 表

mysql - 在 Active Record 中添加自定义列数据类型

mysql查询重复结果