创建表时出现重复键错误:“错误 1022”故障排除
用户遇到了臭名昭著的“错误 1022:无法写入;尝试创建新表时出现“表中的重复键”错误。检查 SQL 查询后,发现重复的来源并不明显。
该查询创建了一个名为 usercircle 的表,其中包含多个列,包括 idUserCircle、userId 和 CircleId。它还在 idUserCircle 上指定了主键,并在 userId 和 CircleId 列上分别指定了引用用户表和圈子表的外键约束。
识别冲突
键解决此错误的关键在于认识到约束(包括外键约束)在整个数据库中必须是唯一的,而不仅仅是在特定表内。因此,根本问题可能是数据库中其他地方的约束名称重复。
解决方案
要确定哪些约束发生冲突,用户可以执行以下查询:
SELECT `TABLE_SCHEMA`, `TABLE_NAME` FROM `information_schema`.`KEY_COLUMN_USAGE` WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');
此查询将显示哪些表和列当前正在使用 iduser 和 idcategory 约束。通过重命名重复约束,用户可以解决错误并成功创建 usercircle 表。
其他提示
以上是如何解决 MySQL 错误 1022:表创建中的重复键?的详细内容。更多信息请关注PHP中文网其他相关文章!