【发布时间】:2014-07-31 14:13:51
【问题描述】:
在 ZF2 中执行 INSERT INTO SELECT 查询的最佳方法是什么?
我需要在 ZF2 中开发一个函数,该函数从一个表中选择记录子集并将这些记录插入到另一个表中。如果我在 SQL 中编程,语句将如下所示:
INSERT INTO target (tgt_col1, tgt_col2)
SELECT 'flag' as marker, src_col2 FROM source
WHERE src_col1='mycriteria'
我搜索了 Doctrine 文档,但找不到 INSERT 方法。我在 Doctrine 标签下发布了similar question,但没有得到回应让我相信 INSERT INTO SELECT 太复杂,Doctrine 无法处理。
在 ZF2 中,我似乎“可以”使用Zend\Db\Sql\Sql。但是,对于该解决方案,SELECT 和INSERT 是两个独立的函数,看起来INSERT 函数一次只处理一条记录。因此,Zend\Db\Sql\Sql 解决方案将需要 1) 一组语句来从源表中选择数据,2) 可能需要一个函数将该数据对象转换为数组,以及 3) 一个 foreach 函数来循环遍历数据数组并通过 4) 一组插入语句将每条记录单独添加到目标表中。与 SQL 中可能的单个语句相比,这似乎很麻烦。
有没有更好的办法?
【问题讨论】:
标签: zend-framework doctrine-orm zend-framework2