有没有办法在 Laravel(MySQL 数据库)中批量插入(插入或更新,如果存在)记录?
假设我有一张桌子:
[id:1 value:4]
[id:2 value:5]
Run Code Online (Sandbox Code Playgroud)
我想执行:
Model::massupsert([
[id:1 value:100],
[id:3 value:20]
]);
Run Code Online (Sandbox Code Playgroud)
之后的表格是:
[id:1 value:100]
[id:2 value:5]
[id:3 value:20]
Run Code Online (Sandbox Code Playgroud)
bai*_*yao 12
现在(2020 年 10 月 6 日),Laravel(v8.10.0) 有了原生upsert支持。https://github.com/laravel/framework/pull/34698
Model::upsert([
['id' => 1, 'value' => 100],
['id' => 3, 'value' => 20],
], 'id');
Run Code Online (Sandbox Code Playgroud)
Laravel 没有原生的 UPSERT 支持。
我为此创建了一个包:https : //github.com/staudenmeir/laravel-upsert
Model::upsert([
['id' => 1, 'value' => 100],
['id' => 3, 'value' => 20],
], 'id', ['value']);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4718 次 |
| 最近记录: |