Fremdschlüssel und MySQL-Fehler

8

Ich habe das folgende Skript, um eine Tabelle in MySQL Version 5.1 zu erstellen, die sich auf 3 andere Tabellen bezieht. Alle 3 Tabellen wurden mit InnoDB erstellt, und alle 3 Tabellen haben die ID-Spalte als INT definiert.

Ich habe erfolgreich andere Tabellen erstellt, die ACCOUNT und PERSON referenzieren, dies ist jedoch die erste Tabelle, die auf ADDRESS verweist, daher habe ich auch die Definition für diese Tabelle als run mit angegeben.

Der Fehler, den ich bekomme, ist ERROR 1005 (HY000) mit errno 150, von dem ich weiß, dass es sich um die Erstellung von Fremdschlüsseln handelt.

Das Skript, das fehlschlägt, ist (zusätzliche Spalten zur Vereinfachung entfernt):

%Vor%

Die SQL-Anweisung, die zum Erstellen der ADDRESS-Tabelle verwendet wurde, ist unten (zusätzliche Spalten zur Vereinfachung entfernt).

%Vor%

Ich habe hier einige Fragen untersucht, die sich mit ähnlichen Problemen befassen, aber die meisten scheinen doppelte Definitionen und nicht übereinstimmende Feldtypen zu sein, sowie einige, die InnoDB nicht für die eine oder andere Tabelle verwenden. Keines davon scheint jedoch das Problem zu sein. Irgendwelche Ideen?

    
Elie 29.11.2009, 02:00
quelle

1 Antwort

13

Sie können immer den Befehl 'SHOW ENGINE INNODB STATUS' ausgeben. In der Ausgabe wird ein "LATEST FOREIGN KEY ERROR" -Bereich vergraben, der genauere Informationen darüber enthalten wird, was den "150" -Fehler verursacht hat:

%Vor%     
Marc B 11.09.2013, 14:39
quelle

Tags und Links