首页  >  文章  >  数据库  >  为什么我会收到 MySQL 错误 1022:“无法写入;表中有重复的键。”即使我只有一个键?

为什么我会收到 MySQL 错误 1022:“无法写入;表中有重复的键。”即使我只有一个键?

Barbara Streisand
Barbara Streisand原创
2024-11-01 14:26:29119浏览

 Why Am I Getting MySQL Error 1022:

MySQL 错误 1022:外键名称冲突

尝试使用 MySQL 创建表时,遇到错误 1022:“无法写入;重复键在表中。”奇怪的是,该表只定义了一个键,但错误仍然存​​在。

经调查,似乎表定义中的特定片段触发了错误:

<code class="sql">CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,</code>

虽然类似的外键定义存在于其他表中没有问题,但问题在于外键名称:error_id。

根本原因:

出现此问题的原因是外键名称不能与整个数据库模型中的另一个外键名称相同。这意味着如果两个表引用同一个表,则每个表中的外键必须具有唯一的名称。

解决方案:

要解决该错误,只需给出有问题的外键有不同的名称。例如,您可以将其命名为 fk_error_id。这会将其与模型中的任何其他外键区分开来,并允许 MySQL 成功创建表。

以上是为什么我会收到 MySQL 错误 1022:“无法写入;表中有重复的键。”即使我只有一个键?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn