我的应用程序中有一个名为“categories”的表,它对“category_name”具有唯一性约束,我想在“categories”中插入多行。
不好的解决方案:
foreach($categories as $category) {
Category::firstOrCreate(array('category_name' => $category['name']));
}
这可能是一个解决方案,但这不是一个好的解决方案。问题是当有数百或数千条记录时,这将对数据库进行大量查询。这不好。
比较好的解决方案
foreach($categories as $category){
$cats[] = array('category_name' => $category['name']);
}
Category::insert($cats);
但是当我尝试插入重复的“category_name”时,它会引发异常并且没有插入任何类别名称。
我知道我们可以使用INSERT IGNORE
,但我正在寻找一些内置的 laravel 解决方案。