Heim >Datenbank >MySQL-Tutorial >Warum gibt MySQL den Fehler „Fremdschlüsseleinschränkung ist falsch gebildet' aus und wie kann ich ihn beheben?
MySQL-Fremdschlüsseleinschränkungsfehler: Typkonflikt
Wenn in MySQL versucht wird, eine Fremdschlüsseleinschränkung zwischen den Tabellen Tabelle1 und Tabelle2 einzurichten, kann der Fehler „Fremdschlüsseleinschränkung ist falsch formatiert“ auftreten. Diese Einschränkung soll die Spalte IDFromTable1 in Tabelle2 mit der Spalten-ID in Tabelle1 verknüpfen, um referenzielle Integrität sicherzustellen.
Obwohl beide Tabellen die InnoDB-Speicher-Engine verwenden und der Datentyp der Spalten vom Typ char ist, besteht der Fehler weiterhin. Die Ursache des Problems liegt in den unterschiedlichen Spalteneigenschaften.
Konkret haben die Fremdschlüsselspalte IDFromTable1 und die referenzierte Spalten-ID unterschiedliche Datentypen oder Längen. Um dieses Problem zu lösen, müssen Sie sicherstellen, dass die entsprechenden Spalten, die an der Fremdschlüsselbeziehung beteiligt sind, genau denselben Datentyp und dieselbe Länge haben.
In diesem Beispiel ist die Fremdschlüsselspalte als SMALLINT(5) UNSIGNED definiert und die referenzierte Spalte ist INT(10) UNSIGNED. Diese Typinkongruenz wird durch die Ausrichtung der Spaltenattribute behoben und so die Fremdschlüsseleinschränkung erfolgreich etabliert.
Das obige ist der detaillierte Inhalt vonWarum gibt MySQL den Fehler „Fremdschlüsseleinschränkung ist falsch gebildet' aus und wie kann ich ihn beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!