有什么办法,我可以在数据库表中使用doctrine的本机sql查询执行支持插入多个关联数组吗?目前,我可以看到只插入一行/关联数组。 代码:
$connection = $em->getConnection();
$connection->insert('un_table_name', $associative_data_array);
我的目标是在单个语句中插入多行,以便将它们插入到单个事务中。
为了澄清,我正在开展一项迁移任务,在该任务中,数据将从旧架构处理并转换为新架构。但由于实体只是新的架构结构,我可以将两个db连接到ORM样式。这就是我遵循本机查询支持的原因。此外,随着批量数据的传输,我认为单个交易中的多个插入将使流程更快。
任何建议/解决方案都表示赞赏。感谢。
答案 0 :(得分:3)
您可以使用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);
});