【问题标题】:Error 1061 (MYSQL Workbench) duplicate keys when creating indexes创建索引时出现错误 1061 (MYSQL Workbench) 重复键
【发布时间】:2020-06-20 01:59:08
【问题描述】:

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

概括地说,我所做的就是创建一个表格,将书籍与任务联系起来。 每个书籍 ID 都会有一些与该特定书籍相关的任务。 这是一种多多关系,即许多书籍将与特定任务相关联。一个特定的任务将与许多书籍相关联。

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

当我对此进行转发工程时,出现了错误。

在服务器中执行 SQL 脚本 错误:错误 1061:重复的键名“FK Tasks_TaskID_idx” SQL 代码:CREATE INDEX `FK Tasks_TaskID_idx` ON `mydb`.`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 在我创建外键时自动创建了索引....然后它给出了一个错误,指出该索引上有重复,然后它不允许我要删除索引,因为上面有一个外键。错误是索引“FK Tasks_TaskID_idx”属于外键“FK Tasks_TaskID”必须删除外键才能删除索引。
  • SHOW KEYS FROM mydb.BooksxTasks的结果是什么?
  • 键名是: PRIMARY, FK Tasks_TaskID_idx, FK Books_BooksID_idx 列名是:分别为 BooksxTasksID、Tasks_TasksID、Books_Book ID。

标签: mysql workbench


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-03-22
    • 1970-01-01
    • 2016-07-13
    • 2019-01-25
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    相关资源
    最近更新 更多