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

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

Barbara Streisand
发布: 2024-11-29 02:14:08
原创
479 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板