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

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

Barbara Streisand
Barbara Streisand原创
2024-11-29 02:14:08536浏览

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

CREATE TABLE 命令中出现重复键错误

问题 1。错误1022:无法写入;表中存在重复键

由于重复键,我在执行 CREATE TABLE 命令时遇到错误 1022。我已查看该查询,但无法确定原因。

查询:

CREATE TABLE IF NOT EXISTS  `apptwo`.`usercircle` (
 `idUserCircle` MEDIUMINT NOT NULL ,
 `userId` MEDIUMINT NULL ,
 `circleId` MEDIUMINT NULL ,
 `authUser` BINARY NULL ,
 `authOwner` BINARY NULL ,
 `startDate` DATETIME NULL ,
 `endDate` DATETIME NULL ,
 PRIMARY KEY (  `idUserCircle` ) ,
 INDEX  `iduser_idx` (  `userId` ASC ) ,
 INDEX  `idcategory_idx` (  `circleId` ASC ) ,
 CONSTRAINT  `iduser` FOREIGN KEY (  `userId` ) REFERENCES  `apptwo`.`user` (
`idUser`
) ON DELETE NO ACTION ON UPDATE NO ACTION ,
 CONSTRAINT  `idcategory` FOREIGN KEY (  `circleId` ) REFERENCES  `apptwo`.`circle` (
`idCircle`
) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE = INNODB;

Q2。重复发生在哪里?

A1.约束名称冲突

该错误可能源于重复的约束名称。约束在整个数据库中必须是唯一的,而不仅仅是在特定表内。

在这种情况下,数据库中似乎已经存在名为 iduser 和/或 idcategory 的约束。重命名这些约束将解决问题。

Q3。如何识别现有约束?

A2。查找约束的查询

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

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

此查询将返回应用约束的架构和表名称.

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

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