Heim > Datenbank > MySQL-Tutorial > MySQL-Fehler 150 und 1005: Warum kann ich keine Fremdschlüsselbeziehungen erstellen?

MySQL-Fehler 150 und 1005: Warum kann ich keine Fremdschlüsselbeziehungen erstellen?

DDD
Freigeben: 2024-11-26 13:37:10
Original
828 Leute haben es durchsucht

MySQL Error 150 & 1005: Why Can't I Create Foreign Key Relationships?

MySql-Fremdschlüsselfehler 150: Ein rätselhaftes Rätsel

Beim Versuch, die Tabellen „foo“ und „bar“ mit Fremdschlüsselbeziehungen zu erstellen , stoßen Sie auf Fehler 1005 (HY000) mit Bezug auf Fehler 150. Dieser Fehler kann frustrierend sein und Sie ratlos zurücklassen zur Grundursache.

Laut der MySQL-Dokumentation zu FOREIGN KEY-Einschränkungen tritt das Problem auf, wenn eine gelöschte Tabelle mit Fremdschlüsselverweisen neu erstellt wird. Die Tabelle muss den Fremdschlüsseleinschränkungen entsprechen und über übereinstimmende Spaltennamen und -typen sowie Indizes für die referenzierten Schlüssel verfügen. Wenn diese Bedingungen nicht erfüllt sind, gibt MySQL den Fehler 1005 mit einem zugrunde liegenden Fehler 150 zurück.

Es ist wahrscheinlich, dass Ihr Fehler auf die Tatsache zurückzuführen ist, dass die Tabelle „foo“ nicht als InnoDB-Tabelle definiert ist. In der MySQL-Dokumentation heißt es ausdrücklich, dass beide Tabellen InnoDB-Tabellen und nicht temporär sein müssen.

Durch Ändern der Tabellenerstellungsabfrage „foo“, um die InnoDB-Engine anzugeben:

mysql> CREATE TABLE foo(id INT PRIMARY KEY) ENGINE=InnoDB;
Nach dem Login kopieren

Das sollten Sie sein konnte die „bar“-Tabelle mit der Fremdschlüsseleinschränkung erfolgreich erstellen und den Fehler 150 beheben.

Das obige ist der detaillierte Inhalt vonMySQL-Fehler 150 und 1005: Warum kann ich keine Fremdschlüsselbeziehungen 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage