【发布时间】:2014-03-18 02:50:23
【问题描述】:
我有这个方法:
while ($line = fgets($fh)) {
$word = new Word();
$word->setWord(trim($line));
$word->setCreatedAt(new \DateTime());
$word->setPriority(1);
$em->persist($word);
}
$em->flush();
现在,字段词包含一个唯一约束,所以如果最后一个 $em->flush();偶然发现一个重复的条目。我可以简单地把flush放在循环中,但这让它慢得要命。我还可以在循环中进行查询以检查单词是否已经存在,但这也会大大减慢速度。
有没有其他方法可以让学说跳过独特的冲突并继续在刷新时插入其余部分?
如果我将其放入尝试中,catch 它会捕获异常,但它不会插入任何行。
【问题讨论】:
标签: php symfony doctrine-orm