在一个学说中插入多个关联数组原生插入()命令


Insert Multiple associative array in one doctrine native insert() command

是否有任何方法,我可以在数据库表中插入多个关联数组与学说的本地sql查询执行支持?目前,我只能看到插入单行/关联数组。代码:

$connection = $em->getConnection();
$connection->insert('un_table_name', $associative_data_array);

我的目标是在单个语句中插入多行,以便将它们插入到单个事务中。

只是为了澄清,我正在进行一个迁移任务,其中数据将被处理并从旧模式传输到新模式。但由于实体只是在新的模式结构中,我可以将数据库与ORM风格连接起来。这就是我使用本机查询支持的原因。另外,由于大量数据将被传输,我认为在单个事务中多次插入将使过程更快。

任何建议/解决方案都是赞赏的。谢谢。

可以使用Connection#transactional($func):

$connection = $em->getConnection();
$connection->transactional (function ($connection) {
    $connection->insert('un_table_name', $associative_data_array1);
    $connection->insert('un_table_name', $associative_data_array2);
    ...
    $connection->insert('un_table_name', $associative_data_arrayN);
});