创建索引时错误1061(MYSQL Workbench)重复键

问题描述 投票:0回答:1

我不明白为什么当我没有任何重复项时索引键重复项为什么总是出现1061错误。我看过其他关于类似问题的stackoverflow帖子,并且大多数帖子在多个外键具有相同名称时都遇到了这个问题。但是,这不适用于我的情况。

概括地说,我要做的是创建一个将书链接到任务的表。每个书籍ID都会有与该特定书籍相关的一些任务。这是一种多对多的关系,即许多书籍将与特定任务相关联。一个特定的任务将与许多书籍相关联。

enter image description here

因此,在这种多对多关系之间,我有一个Books x Tasks表,作为中介。该表具有其自己的主键和两个外键。一种是books表中的book ID,而tasks表中的task id。因此它们都是外键。这样,我可以将多个任务与多本书链接起来,每本书都由booksxtasks表中自己的唯一ID定义。

当我对此进行正向工程时,出现错误。

在服务器中执行SQL脚本错误:错误1061:重复的密钥名称'FK Tasks_TaskID_idx'SQL代码:在MYDB上创建索引FKTasks_TaskID_idx。BooksxTasks(Tasks_TaskID ASC)

  CREATE TABLE IF NOT EXISTS `mydb`.`BooksxTasks` (
  `BooksxTasksID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `Books_BookID` INT UNSIGNED NOT NULL,
  `Tasks_TaskID` TINYINT(2) UNSIGNED NOT NULL,
  PRIMARY KEY (`BooksxTasksID`),
  CONSTRAINT `FK Tasks_TaskID`
    FOREIGN KEY (`Tasks_TaskID`)
    REFERENCES `mydb`.`Tasks` (`TaskID`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `FK Books_BooksID`
    FOREIGN KEY (`Books_BookID`)
    REFERENCES `mydb`.`Books` (`BookID`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE INDEX `FK Tasks_TaskID_idx` ON `mydb`.`BooksxTasks` (`Tasks_TaskID` ASC);

CREATE INDEX `FK Books_BooksID_idx` ON `mydb`.`BooksxTasks` (`Books_BookID` ASC);

我还检查了整个数据库中所有约束的所有名称。没有重复的名字。那么这个重复的密钥错误是从哪里来的?

mysql workbench
1个回答
0
投票

我通过在进行正向工程时从代码中删除突出显示的行来解决此问题。 enter image description here

尽管我已修复错误,但我真的不明白为什么(正向工程)在sql脚本中创建了这些额外的“创建索引”行。

© www.soinside.com 2019 - 2024. All rights reserved.