【问题标题】:Duplicate key on write or update? [duplicate]写入或更新时重复键? [复制]
【发布时间】:2013-12-29 00:55:25
【问题描述】:

写入或更新时重复键

首先我要承认一个事实,即我去过类似的帖子,但我找不到解决我目前面临的这个烦人问题的方法。我正在使用mysql 工作台,我不断收到此错误。

  1. 在工作台上: 错误:错误 1005:无法创建表 'database.path'(错误号:121)

  2. 在命令行中使用“Perror 121”: MySQL 错误代码 121:写入或更新时重复键

在日志的末尾,它显示 9 次成功操作1 次失败,日志中只有 路径 表可见。 p>

欢迎任何帮助和建议。我认为 mysql 编译器在表示调试的实际问题时并没有真正做好工作。

【问题讨论】:

  • 可能与您的问题无关,但是 as_detail 链接似乎有误? as_detail.As_Name=as_path.A_No.不应该链接到as_details中的PK吗?
  • @KayNelson 实际上工作台并没有从字面上指定与线条的确切关系。它只是指向使用中间的表格,正如您在大多数情况下看到的那样。 as_detail_AS_No = as_path_AS_No
  • 嗯,早上好...这更有意义,因为我现在看到所有关系都是错误的,呵呵 :) 但在我看来,一个 UNIQUE/PK 字段得到一个双值或一个 FK 约束名称可能是问题?你能发布创建语句吗?
  • @KayNelson 早上好,非常感谢您努力提供帮助。我发现这个问题与 rakeshjain 发布的链接密切相关。我回答了我的问题。

标签: mysql sql


【解决方案1】:

对不起,我发现了问题。和这个post.有关

rakeshjain 暗示了这一点。

管理员可能会将其作为重复帖子删除。

答案是,我在同名的不同表上有两个 CONTRAINTS:

CONSTRAINT Update_ID_fk --> 换了一个,问题解决了。

【讨论】:

  • 当我尝试通过在同一查询中删除和添加键来将列添加到 UNIQUE 索引时,这发生在我身上。我收到一条错误消息,其中还包含随机表名和错误数据。很奇怪。在一个查询中删除索引并在第二个查询中添加效果很好。
  • 哇!我不知道!感谢您在此处发布的解决方案 - 我发现它比链接到的帖子更清晰。
  • 更改了约束名称并正常工作!
  • 这件事发生在我身上是因为有人做了一个备份表:|
  • 感谢您的回答。起初不明白,以为在多个表中可以使用相同的CONSTRAINT名称(类似于列名),但是不行,在每个表中必须唯一的CONSTRAINT名称
【解决方案2】:

您的外键名称必须是唯一的

【讨论】:

  • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
  • @Vasfed 好像是这样
  • 它确实提供了一个答案。
  • 它提供基于(隐式)答案的解决方案,因为问题寻求(隐式)解决方案
  • 我想通过“您的外键名称必须是唯一的......在整个架构/数据库中扩展答案。这意味着不同的表不能具有相同的 FK 名称”
猜你喜欢
  • 2012-10-11
  • 2018-07-04
  • 2016-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
相关资源
最近更新 更多