通过doctrine dbal获取插入原始数据的ID

时间:2017-06-21 23:55:48

标签: symfony doctrine dbal

我正在研究symfony应用程序,我需要一次插入多个原始数据,Doctrine ORM不是一个好的选择,因为对于每个原始数据,它将打开一个连接来执行查询,以避免这种情况并且有一个连接插入所有原始我使用准备的doctrine dbal语句,它工作正常,除了我需要得到插入的原始的id,似乎唯一可用的函数是lastinsertedid只返回最后一个id不是所有最后插入的,我怎么能实现这个目标? 任何帮助,将不胜感激!

2 个答案:

答案 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):

Retrieving serial id from batch inserted rows in postgresql

答案 1 :(得分:1)

在将内容插入数据库之前,您实际上可以生成ID。例如,使用随机UUID。 该库可能有用:https://github.com/ramsey/uuid

use Ramsey\Uuid\Uuid;

$uuid4 = Uuid::uuid4();
echo $uuid4->toString()