gpt4 book ai didi

mysql - 为什么我在更新时得到 "ERROR 1062 (23000): Duplicate entry ' 428 9' for key 1"?

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

这个问题以前曾以多种不同的方式被问过,但在这些情况下提供的答案并不能帮助我解决我的问题。

我们正在运行 MySQL 版本“5.0.41-community-log MySQL Community Edition (GPL)”有问题的表是这样描述的(出于业务原因,我删除了大部分表定义):

 Field      Type          Null     Key     Default     Extra          
--------- ------------ ------- ------ ---------- --------------
id bigint(20) NO PRI (null) auto_increment
...
extracted tinyint(1) YES (null)

当我运行更新 SQL 语句时:

UPDATE transaction_tbl SET extracted = 1 WHERE id = 4289

我得到错误:

ERROR 1062 (23000): Duplicate entry '4289' for key 1

运行这个选择语句:

SELECT id, extracted FROM transaction_tbl WHERE id BETWEEN 4288 AND 4290

产生这个:

 id     extracted   
----- ------------
4288 0
4289 0
4290 0

我已经阅读了有关在表上使用 REPAIR 的地方,但收到“表的存储引擎不支持修复”的响应

我有点不知所措。如果有人可以帮助我。我很想知道如何以不需要我销毁数据的方式解决这个问题。

最佳答案

正如@rabudde 和@Eljakim 在问题的评论部分中提到的,在我的案例中,这个问题是由触发器的 Action 引起的。

触发器试图将记录插入到另一个表中,但由于重复键问题导致插入失败。

使用 SHOW TRIGGERS LIKE 'transaction_tbl'(在我的例子中)找到作用在表上的所有触发器,然后通过一些步法来发现哪个触发器是坏的。

最终,我不得不修改触发器,使其仅在记录不在目标表中的情况下执行插入,如果存在则执行更新。

关于mysql - 为什么我在更新时得到 "ERROR 1062 (23000): Duplicate entry ' 428 9' for key 1"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7103106/

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