Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

Barbara Streisand
Freigeben: 2024-11-27 05:19:14
Original
790 Leute haben es durchsucht

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;
Nach dem Login kopieren

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!

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