Heim > Datenbank > MySQL-Tutorial > MySQL-Fehler 1005 und 150: Warum kann ich meine Tabellen nicht erstellen?

MySQL-Fehler 1005 und 150: Warum kann ich meine Tabellen nicht erstellen?

Linda Hamilton
Freigeben: 2024-11-30 22:30:13
Original
248 Leute haben es durchsucht

MySQL Error 1005 & 150: Why Can't I Create My Tables?

MySql-Fehler 1005: Tabelle kann nicht erstellt werden – Den Übeltäter von Fehler 150 aufdecken

In einem Versuch, zwei Tabellen zu definieren, insbesondere „ foo‘ und ‚bar‘, eine Fehlermeldung plagt den Prozess und deutet auf einen schwer fassbaren „Fehler 150“ hin. Begeben wir uns auf eine Reise in die Welt von MySQL, um die verborgene Ursache aufzudecken und das Geheimnis hinter diesem Code-Rätsel zu lüften.

Bei näherer Betrachtung scheinen beide Abfragen frei von eklatanten Fehlern zu sein. Die zugehörige Fehlermeldung lässt jedoch etwas anderes vermuten. Als wir die Fehlermeldung sorgfältig untersuchen, stoßen wir auf einen Verweis auf Fehler 150. Als wir in die Tiefen der MySQL-Dokumentation eintauchen, stoßen wir zufällig auf das Konzept der FOREIGN KEY-Einschränkungen.

Im Zusammenhang mit FOREIGN KEY-Einschränkungen eine merkwürdige Anmerkung erregt unsere Aufmerksamkeit: „Wenn Sie eine gelöschte Tabelle neu erstellen, muss sie eine Definition haben, die den Fremdschlüsseleinschränkungen entspricht, die auf sie verweisen.“ Diese Offenbarung veranlasst uns, die Umstände zu untersuchen, die zu diesem Fehler geführt haben. Es ist von entscheidender Bedeutung, dass die neu erstellte Tabelle („foo“ in unserem Fall) den Spaltennamen, Datentypen und Indexdefinitionen entspricht, die für Fremdschlüsseleinschränkungen erforderlich sind. Jede Abweichung von diesen Spezifikationen könnte dazu führen, dass MySQL den Fehler 1005 ausgibt, begleitet von einem Verweis auf Fehler 150.

In Anbetracht der Fehlermeldung und der Erkenntnisse aus der MySQL-Dokumentation liegt unser Verdacht auf der Möglichkeit, dass „foo“ wurde möglicherweise nicht mit der InnoDB-Speicher-Engine erstellt. Eine Überprüfung der Dokumentation bestätigt diesen Verdacht: „Beide Tabellen müssen InnoDB-Tabellen sein und sie dürfen keine TEMPORÄREN Tabellen sein.“

Indem sichergestellt wird, dass sowohl „foo“ als auch „bar“ tatsächlich InnoDB-Tabellen sind, und indem das vermieden wird Durch den Einsatz von TEMPORARY-Tabellen können wir diese mögliche Fehlerursache beseitigen. Es ist erwähnenswert, dass auch andere Faktoren zu Fehler 150 beitragen können, aber dieses spezielle Szenario stimmt genau mit den bereitgestellten Informationen überein.

Das obige ist der detaillierte Inhalt vonMySQL-Fehler 1005 und 150: Warum kann ich meine Tabellen 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