gpt4 book ai didi

php - 多次插入/更新时出现唯一键异常

转载 作者:行者123 更新时间:2023-11-29 19:02:13 25 4
gpt4 key购买 nike

我的应用程序接收来自外部来源的多个请求(来自销售点单位的发票)。它每秒收到数十个请求,其中一些请求是相同的(具有相同的请求正文)。

请求数据被转换并保存到两个关联的表(外键)。如果记录已存在(通过唯一组合键查询),则更新记录,否则添加记录。

问题是,有时如果同时收到两个具有相同正文的请求,应用程序会抛出唯一键已存在且无法插入的异常:

 SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry

这可能是 MySQL 中的某种竞争条件,但无法弄清楚

整个过程都封装在 Laravel 事务中。我尝试设置不同的隔离级别。 SERIALIZABLE 解决了这个问题,但随后我遇到了很多死锁异常,并且正如我所看到的,有时记录根本没有保存。

最佳答案

这很简单,这里发生的情况是,您有一些值声明为“UNIQUE”或“主键”或类似的值,并且您尝试再次插入,某些键限制阻止了插入,这应该很好,您可以避免数据库中的重复条目,但是您需要检查您尝试插入的数据是否之前存在于数据库中,而不是所有列,您应该询问您的键或键组合,我不能如果我不知道数据或表格,可以为您提供更多帮助...

关于php - 多次插入/更新时出现唯一键异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43778962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com