Я не могу понять, почему я получаю ошибку 1061 для дубликатов ключей в индексах, когда у меня нет дубликатов. Я посмотрел другие посты stackoverflow, касающиеся подобных вопросов, и у большинства была эта проблема, когда у них было одно и то же имя для нескольких внешних ключей. Тем не менее, это не относится к моему случаю.
В общих словах я создал таблицу, связывающую книги с задачами. Каждый идентификатор книги будет иметь несколько задач, связанных с этой конкретной книгой. Это много-много отношений, т.е. многие книги будут связаны с конкретной задачей c. И конкретная задача c будет связана со многими книгами.
![enter image description here](https://i.stack.imgur.com/z3sNX.jpg)
Таким образом, между этими отношениями многие ко многим у меня есть таблица Книги x Задачи, которая действует как посредник. Эта таблица имеет свой собственный первичный ключ и два внешних ключа. Одним из них является идентификатор книги из таблицы книг и идентификатор задачи из таблицы задач. Поэтому они оба являются внешними ключами. Таким образом, я могу связать несколько задач с несколькими книгами, каждая из которых определяется своим уникальным идентификатором в таблице booksxtasks.
Когда я отправляю это инженеру, возникает ошибка.
Выполнение сценария SQL на сервере. ОШИБКА: Ошибка 1061: дубликат имени ключа 'FK Tasks_TaskID_idx' SQL Код: CREATE INDEX `FK Tasks_TaskID_idx` ON` mydb`. BooksxTasks` (`Tasks_Task` (` Tasks_Task) `AS C)
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);
Я также проверил, чтобы увидеть все имена, данные всем ограничениям во всей базе данных. Там не было повторяющихся имен. Так откуда же эта ошибка с двойным ключом?