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;
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!