插入重复键时的 laravel 雄辩忽略错误
我正在从另一个服务获取JSON,并希望在表中插入一堆数据。我想这样做,每次我运行它时都不会崩溃。我想对表的PK保留我的唯一约束(因为我不想插入相同的数据两次),但是,如果发生这种情况,我不希望laravel抛出致命错误(仅在特定表上)。
如何插入我的数据,并在尝试插入具有重复主键的其他数据时继续插入?
Schema::create('dummy', function (Blueprint $table) {
$table->integer('id')->unique();
$table->string('name',100);
});
从另一个 API 获取一堆 JSON。然后插入所有行:
{
'id':1,
'name': 'one'
},{
'id':2
'name':'two'
}
这使得。
DB::table('dummy')->insert([
['id' => 1, 'name' => 'one'],
['id' => 2, 'name' => 'two']
]);
然后另一天,第三方API上有新数据。并想更新我的数据库:
获取 json,并接收:
{
'id':1,
'name': 'one'
},{
'id':2
'name':'two'
},{
'id':3
'name':'three'
}
这使得:
DB::table('dummy')->insert([
['id' => 1, 'name' => 'one'], // <-- will crash there cause PK already existe, but want to keep inserting
['id' => 2, 'name' => 'two'], // <-- skipp cause already exist
['id' => 3, 'name' => 'three'] // insert that line.
]);