首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel - updateOrCreate() -违反完整性约束

问Laravel - updateOrCreate() -违反完整性约束
EN

Stack Overflow用户
提问于 2019-06-10 19:38:47
回答 1查看 1.9K关注 0票数 2

在使用updateOrCreate()时,我得到以下错误:

Integrity constraint violation: 1062 Duplicate entry '8acda4a86b26d8dc016b3801b87236b0' for key 'uuid'

我的理解是,当唯一键已经存在于表中时,它不会尝试插入,而是会更新该行,所以为什么我会得到这个错误?

在我的MySQL数据库中,列uuid被设置为唯一。

列json是一个JSON列,并被设置为NOT NULL。

下面是我的代码:

代码语言:javascript
复制
TransactionJSON::updateOrCreate(
   ['uuid' => $json->payload->id],
   ['json' => $json_merge]
);
EN

回答 1

Stack Overflow用户

发布于 2019-06-10 20:00:36

在您的模型TransactionJSON中,您应该将uuid设置为主键。

代码语言:javascript
复制
protected $primaryKey = 'uuid';

这就是laravel通过uuid更新表的方式,否则laravel将通过id (默认primaryKey )查找条目,如果id不存在,它将创建一个条目。了解更多https://laravel.com/docs/5.8/eloquent

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56525650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档