我在create table命令中遇到了一个关于重复键的1022错误.看了这个问题后,我不明白复制发生在哪里.其他人能看到吗?

SQL query:

-- -----------------------------------------------------
-- Table `apptwo`.`usercircle`
-- -----------------------------------------------------
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;

MySQL said: Documentation

#1022 - Can't write; duplicate key in table 'usercircle' 

推荐答案

最有可能的情况是,数据库中已经有一个名为iduseridcategory的约束.如果是的话,只需重命名约束即可.

约束对于整个数据库必须是唯一的,而不仅仅是对于您正在创建/更改的特定表.

要找出当前使用的约束的位置,可以使用以下查询:

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

Mysql相关问答推荐

MySQL binlog事件上的并发事务行为

MySQL有没有办法直接从CSV文件中读取而不是导入它?

查询具有JSON对象数组的列时,JSON_CONTAINS的MySQL语法错误

如何查询一行

Group_CONCAT CASE 乘法输出

将 JSON 类型的列与特定字符串值进行比较

MySQL CHECK 约束以确保记录不使用自动增量 ID 引用自身?

从 R 脚本创建新的 MYSQL 数据库

在 Spring Data jpa 中的 @Query 中无法识别本机查询

如何在不使用子查询的情况下按最小日期计算新用户?

SQL / MySQL:如何在WHERE IN中判断类似于OR的AND逻辑

创建表时我的 SQL 语句有什么问题

如何替换 SELECT 查询中重复记录的列?

查找同时玩过这两种游戏的玩家

基于 2 列的重复行的 SQL 查询

为什么从我的 SQL 查询中删除 BINARY 函数调用会如此显着地改变查询计划?

如何用一系列日期填充表格?

NodeJS/mySQL - ER_ACCESS_DENIED_ERROR 用户'root'@'localhost'的访问被拒绝(使用密码:是)

什么是mysql的BETWEEN性能超过..?

在 MySQL 中仅 Select 仅包含字母数字字符的行