MYSQL - Kann nicht in der Lage sein, Fremdschlüssel erstellen
-
21-09-2019 - |
Frage
Wenn ich ausführen die folgende Abfrage wirft es einen Fehler,
alter table `ttis`.`users`
add constraint `FK_Role_ID` FOREIGN KEY (`ROLE_ID`) REFERENCES `roles` (`ROLE_ID`)
Fehler:
Error Code : 1005
Can't create table 'ttis.#sql-9c_8a' (errno: 150)
Lösung
Haben Sie einen Blick auf diesen Beitrag: 13.6.4.4. Fremdschlüssel-Beschränkungen und die Suche nach „150“. Es heißt hier:
Wenn Sie eine Tabelle neu erstellen, das war Aussetzern, muss es eine Definition haben das entspricht den Fremdschlüssel Einschränkungen Referenzierung es. Es muss haben das Recht, Spaltennamen und -typen, und es müssen Indizes für die referenzierten Schlüssel, wie bereits erwähnt. Wenn diese nicht erfüllt sind, MySQL Renditen Fehlernummer 1005 und bezieht sich auf Fehler 150 in der Fehlermeldung.
Wenn MySQL meldet einen Fehlernummer 1005 von einer CREATE TABLE-Anweisung und die Fehlermeldung bezieht sich auf Fehler 150, Tabelle konnte nicht erstellt werden, weil ein Fremdschlüssel nicht korrekt gebildet. Und falls ein ALTER TABLE schlägt fehl, und es bezieht sich auf Fehler 150, das bedeutet, ein Fremdschlüssel Definition würde falsch gebildet für die geänderte Tabelle. Sie können verwenden SHOW ENGINE BDB STATUS Anzeige ein detaillierte Erklärung der meisten den letzten InnoDB Fremdschlüssel Fehler in der Server.