Heim > Datenbank > MySQL-Tutorial > Warum kann ich meine MySQL-Tabelle aufgrund doppelter Einschränkungsnamen nicht erstellen?

Warum kann ich meine MySQL-Tabelle aufgrund doppelter Einschränkungsnamen nicht erstellen?

Patricia Arquette
Freigeben: 2024-11-26 05:15:24
Original
522 Leute haben es durchsucht

Why Can't I Create My MySQL Table Due to Duplicate Constraint Names?

Fehler: Tabelle kann aufgrund eines doppelten Einschränkungsnamens nicht erstellt werden

Beim Forward Engineering Ihrer MySQL-Datenbank in einen WAMP-Server ist der Fehler aufgetreten „Fehler 1005: Die Tabelle ‚aquaticstar.link‘ kann nicht erstellt werden (Fehlernummer: 121).“ Dieser Fehler weist darauf hin, dass in der Datenbank bereits eine Tabelle mit dem angegebenen Namen vorhanden ist.

Bei weiteren Untersuchungen wurde festgestellt, dass das Problem mit doppelten Einschränkungsnamen zusammenhängt. Insbesondere enthält die Link-Tabelle Fremdschlüsseleinschränkungen mit den Namen „id“ und „leson_id“, die auch in anderen Tabellen vorhanden sind. Dieser Namenskonflikt verhindert, dass die Datenbank die Link-Tabelle erstellt.

Um dieses Problem zu lösen, sollten Sie die Fremdschlüsseleinschränkungen in der Link-Tabelle in eindeutige Namen umbenennen. Dies kann erreicht werden, indem die folgenden Zeilen im ausgeführten Skript geändert werden:

CONSTRAINT `id`
    FOREIGN KEY (`id` )
    REFERENCES `Students` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
CONSTRAINT `lesson_id`
    FOREIGN KEY (`lesson_id` )
    REFERENCES `Schedule` (`lesson_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
Nach dem Login kopieren

Sie können beispielsweise die ID-Einschränkung in student_id und die Lektion_id-Einschränkung in Schedule_lesson_id umbenennen.

CONSTRAINT `student_id`
    FOREIGN KEY (`id` )
    REFERENCES `Students` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
CONSTRAINT `schedule_lesson_id`
    FOREIGN KEY (`lesson_id` )
    REFERENCES `Schedule` (`lesson_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
Nach dem Login kopieren

Nachdem Sie die Einschränkungen umbenannt haben, führen Sie das Skript erneut aus, um die Link-Tabelle erfolgreich zu erstellen.

Das obige ist der detaillierte Inhalt vonWarum kann ich meine MySQL-Tabelle aufgrund doppelter Einschränkungsnamen nicht erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage