laravel-php向mysql执行insert时,提示“mysqlduplicatekey”,如何处理?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了laravel-php向mysql执行insert时,提示“mysqlduplicatekey”,如何处理?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1105字,纯文字阅读大概需要2分钟。
内容图文
![laravel-php向mysql执行insert时,提示“mysqlduplicatekey”,如何处理?](/upload/InfoBanner/zyjiaocheng/237/96cd21c960b146eeb810e32d1efe9196.jpg)
场景:在并发请求处理中,mysql数据库会出现“ Integrity constraint violation: 1062 Duplicate entry ”,如两个用户同时请求注册email
$ret = User::create(array(
'email' => "nick@nick.com"
));
我想让这两个并发请求都成功返回,并返回Email,如何规避掉键值重复。
目前有以下几种:
1)插入前,使用select查询,但这个并不能解决问题。
2)使用insert ignore
3)使用insert on duplicate key
4)直接try catch
哪种处理方案会好些?
回复内容:
前提:【laravel4】服务器端提供接口全部采用异步方式调用,数据表有唯一键
场景:在并发请求处理中,mysql数据库会出现“ Integrity constraint violation: 1062 Duplicate entry ”,如两个用户同时请求注册email
$ret = User::create(array(
'email' => "nick@nick.com"
));
我想让这两个并发请求都成功返回,并返回Email,如何规避掉键值重复。
目前有以下几种:
1)插入前,使用select查询,但这个并不能解决问题。
2)使用insert ignore
3)使用insert on duplicate key
4)直接try catch
哪种处理方案会好些?
那就要看你的需求了,出现Duplicate entry这个错误是因为主键有重复,如果是以uid为主键的话,那么要考虑uid生成算法是否有问题,或者是否重复注册了
内容总结
以上是互联网集市为您收集整理的laravel-php向mysql执行insert时,提示“mysqlduplicatekey”,如何处理?全部内容,希望文章能够帮你解决laravel-php向mysql执行insert时,提示“mysqlduplicatekey”,如何处理?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。