在使用updateOrCreate()时,我得到以下错误:
Integrity constraint violation: 1062 Duplicate entry '8acda4a86b26d8dc016b3801b87236b0' for key 'uuid'
我的理解是,当唯一键已经存在于表中时,它不会尝试插入,而是会更新该行,所以为什么我会得到这个错误?
在我的MySQL数据库中,列uuid被设置为唯一。
列json是一个JSON列,并被设置为NOT NULL。
下面是我的代码:
TransactionJSON::updateOrCreate(
['uuid' => $json->payload->id],
['json' => $json_merge]
);发布于 2019-06-10 20:00:36
在您的模型TransactionJSON中,您应该将uuid设置为主键。
protected $primaryKey = 'uuid';这就是laravel通过uuid更新表的方式,否则laravel将通过id (默认primaryKey )查找条目,如果id不存在,它将创建一个条目。了解更多https://laravel.com/docs/5.8/eloquent
https://stackoverflow.com/questions/56525650
复制相似问题