首页 >数据库 >mysql教程 >为什么创建表时出现 MySQL 错误 1022(重复键)?

为什么创建表时出现 MySQL 错误 1022(重复键)?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-30 17:00:12262浏览

Why Am I Getting a MySQL Error 1022 (Duplicate Key) When Creating a Table?

不能写;创建表时出现重复键

由于主键条目重复而尝试创建新表时遇到错误 1022。即使在检查了查询之后,您也可能很难识别重复的来源。让我们进一步研究一下。

您提供的查询包含一个名为“iduser”的约束作为“userId”列的外键。此外,它还为“circleId”列指定名为“idcategory”的约束。这些约束名称似乎是问题的根源。

约束和重复

MySQL 中的约束在整个数据库中必须是唯一的,而不仅仅是针对特定表正在创建或修改。因此,您的数据库中可能已经有其他使用“iduser”或“idcategory”约束名称的表或索引。此冲突会导致重复键错误。

识别重复约束

要确定当前使用这些约束的位置,请执行以下查询:

SELECT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');

此查询将显示“iduser”和“idcategory”约束所在的表和模式

解决方案

要解决该错误,您需要重命名重复的约束。考虑使用特定于当前表的唯一名称,例如“userId”列上的外键约束的“fk_user”。重命名约束并更新查询后,您应该能够成功创建表,而无需重复密钥错误。

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

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