首页 > 解决方案 > Laravel updateOrCreate 插入随机重复项

问题描述

我的项目遇到了一个特殊的问题。我在 MySQL 中使用 laravel 5.4。我正在插入多条记录(30,60 等),并且很少插入重复记录。例如,在创建从 2018 年 1 月 1 日到 2018 年 1 月 30 日的记录时,即它应该插入 30 条记录。有时它会插入 30 条记录,但通常会插入更多。可能很少有重复条目,例如 5、6、7 和 21、22、23、24 等。我在 Github 上查看过这个问题,很少有人遇到这个问题,很少有人说这是因为“种族条件”。真的是因为 Race conditions 吗?为什么会出现这种重复?有什么方法可以防止它,我宁愿不锁定我的数据库,因为可能有多个人同时插入。建议表示赞赏。

`$sdata = [
'tenant_id'          => Helper::getTenantID(),
'branch_id'          => Helper::getBranchID(),
'user_id'            => Helper::getUserID(),
'service_request_id' => $serviceRequestID,
'amount'             => $netRate,
'notes'              => $notes,
'status'             => 'Pending',
];
Schedule::updateOrCreate($sdata);`

标签: phpmysqllaravel

解决方案


推荐阅读