PDO获取多个插入ID

5

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

INSERT INTO MyTable(MyField) VALUES('Row1'), ('Row2')

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

$db->lastInsertId()只返回最后一个单独的Id。

仅仅通过获取最后一个Id,减去记录数并假设范围覆盖所有记录就足够了吗?这个查询是否保证原子性?是否可能存在间隙或跳跃?


1
你正在使用哪种存储引擎?InnoDB?MyISAM? - James C
1
目前使用的是MyISAM,但我希望将来使用InnoDb,因此导出模式包括FK约束。话虽如此,我也可以灵活处理。 - Basic
1个回答

3

1
谢谢您的回复,能否请您澄清一下 - 表级锁定(虽然通常不好),但在这种情况下可能是一个福音,但 PHP 的 lastInsertId() 函数仅返回单个 ID,即使插入了多条记录。 - Basic
1
如果您插入了十行,则刚刚插入的ID范围将为LAST_INSERT_ID() - 10 - LAST_INSERT_ID() - James C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接