我正在研究symfony应用程序,我需要一次插入多个原始数据,Doctrine ORM不是一个好的选择,因为对于每个原始数据,它将打开一个连接来执行查询,以避免这种情况并且有一个连接插入所有原始我使用准备的doctrine dbal语句,它工作正常,除了我需要得到插入的原始的id,似乎唯一可用的函数是lastinsertedid只返回最后一个id不是所有最后插入的,我怎么能实现这个目标? 任何帮助,将不胜感激!
答案 0 :(得分:2)
这实际上与学说无关。如果你想要所有插入的id,它必须在MySQL中。 "如果学说没有批量插入,它将不太可能支持在批量插入后返回ID列表:)"
检查与MYSQL相关的答案:
How can I Insert many rows into a MySQL table and return the new IDs?
MySQL LAST_INSERT_ID() used with multiple records INSERT statement
但是在postgresql中它是可能的(因为你没有提到你的DB):
答案 1 :(得分:1)
在将内容插入数据库之前,您实际上可以生成ID。例如,使用随机UUID。 该库可能有用:https://github.com/ramsey/uuid
use Ramsey\Uuid\Uuid;
$uuid4 = Uuid::uuid4();
echo $uuid4->toString()