使用 PDO 运行以下查询(实际上,我使用准备好的语句但同样的问题)
插入 MyTable(MyField) VALUES('Row1'), ('Row2')
如何获取与 Row1
和 Row2
相关的记录的 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/