为什么在创建 MySQL 表时出现'无法写入;表中有重复键”错误(错误 1022)?

DDD
发布: 2024-10-28 04:07:20
原创
290 人浏览过

Why am I Getting

检测到重复:MySQL 表创建失败(错误 1022)

在尝试使用 MySQL Workbench 创建表时,用户可能会遇到可怕的情况错误 1022:“无法写入;表中有重复的键。”尽管用于表创建的 SQL 语句看似简单,但还是出现了此问题。经过仔细检查,问题变得显而易见:

罪魁祸首:相同的外键名称

错误消息源于在域中存在多个具有相同名称的外键。相同的数据库模型。要理解这个概念,请考虑以下类比:


  • 在商业世界中,每个员工都与一个部门相关联。

  • 同样,在数据库中,子表中的每一行都应该引用父表中的一行。
  • 这种引用机制是通过外键建立的,外键充当桥梁

当不同表中的两个不同外键引用父表中的同一列时,就会出现此问题。正如员工不能同时在两个部门工作一样,子表行不能有多个外键指向不同的父表行。

物理示例

考虑以下数据库模型:


  • 表“Catalog”包含产品列表。

  • 表“Supplier”包含产品列表供应商列表。

如果两个表都包含引用“Supplier”表的名为“supplier_id”的外键,MySQL 将返回错误 1022。对于此问题,必须为外键分配唯一的名称。

解决命名冲突

要纠正错误,请按照以下步骤操作:

  1. 打开 SQL 语句并找到外键定义。
  2. 识别任何重复的外键名称。
  3. 将重复的外键重命名为唯一名称。
  4. 执行更新后的SQL语句来创建表。

通过解决外键内的命名冲突,您可以成功创建所需的表并避免“无法写入;表中出现重复键”错误。

以上是为什么在创建 MySQL 表时出现'无法写入;表中有重复键”错误(错误 1022)?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!