Heim >Datenbank >MySQL-Tutorial >MySQL-Fehler 150: Warum kann ich diesen Fremdschlüssel nicht erstellen?

MySQL-Fehler 150: Warum kann ich diesen Fremdschlüssel nicht erstellen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-27 05:19:14843Durchsuche

MySQL Error 150: Why Can't I Create This Foreign Key?

MySql Encounter Error 150: Deciphering Foreign Key Woes

Beim Versuch, eine Tabelle mit einem Fremdschlüssel zu erstellen, der auf eine andere Tabelle verweist, kann es zu Problemen bei Entwicklern kommen Fehler 150, der sie mit seiner kryptischen Nachricht verwirrt. Dieser Artikel befasst sich mit der zugrunde liegenden Ursache dieses Fehlers und bietet eine Lösung.

Wie in der MySQL-Dokumentation beschrieben, tritt Fehler 150 auf, wenn die Neuerstellung einer zuvor gelöschten Tabelle nicht den Fremdschlüsseleinschränkungen entspricht, die auf sie verweisen. Insbesondere muss die Tabelle dieselben Spaltennamen, Typen und Indizes für die referenzierten Schlüssel beibehalten wie bei der ursprünglichen Erstellung.

Um dieses Problem zu beheben, stellen Sie sicher, dass die Tabelle, die den Fremdschlüssel enthält (in diesem Fall „foo“) wird ebenfalls als InnoDB-Tabelle erstellt. Gemäß der MySQL-Dokumentation müssen beide Tabellen, die an einer Fremdschlüsselbeziehung beteiligt sind, InnoDB-Tabellen und keine temporären Tabellen sein.

Um den Fehler zu beheben, versuchen Sie daher, die „foo“-Tabelle wie folgt als InnoDB-Tabelle neu zu erstellen Abfrage:

CREATE TABLE foo (
  id INT PRIMARY KEY
) ENGINE = InnoDB;

Sobald die „foo“-Tabelle als InnoDB-Tabelle erstellt wurde, sollten Sie in der Lage sein, die „bar“-Tabelle mit der Fremdschlüsselreferenz ohne erfolgreich zu erstellen Es tritt Fehler 150 auf.

Das obige ist der detaillierte Inhalt vonMySQL-Fehler 150: Warum kann ich diesen Fremdschlüssel nicht erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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