Heim >Datenbank >MySQL-Tutorial >Warum gibt MySQL den Fehler „Fremdschlüsseleinschränkung ist falsch gebildet' aus?
Fehlerbehebung bei MySQL-Fremdschlüsseleinschränkungsfehlern
Das Erstellen einer Fremdschlüsselbeziehung in MySQL erfordert sorgfältige Beachtung der Datentypkompatibilität. Nicht übereinstimmende Datentypen oder Längen zwischen der Fremdschlüsselspalte und der referenzierten Primärschlüsselspalte führen zu einem Fehler „Fremdschlüsseleinschränkung ist falsch gebildet“.
Hier ist ein häufiges Szenario:
ID
Spalte (Primärschlüssel) mit einem CHAR
Datentyp.IDFromTable1
-Spalte, die auf die ID
-Spalte von Tabelle1 verweist.Versuch, die Fremdschlüsseleinschränkung mithilfe dieser Abfrage zu erstellen:
<code class="language-sql">ALTER TABLE `table2` ADD CONSTRAINT `FK1` FOREIGN KEY (`IDFromTable1`) REFERENCES `table1` (`ID`) ON UPDATE CASCADE ON DELETE CASCADE;</code>
schlägt fehl, wenn IDFromTable1
und ID
unterschiedliche Datentypen oder Längen haben. Wenn beispielsweise IDFromTable1
VARCHAR(50)
ist und ID
CHAR(10)
ist, wird die Einschränkung nicht erstellt.
Lösung:
Die Lösung ist unkompliziert: Stellen Sie sicher, dass die Fremdschlüsselspalte und die referenzierte Spalte genau den gleichen Datentyp und die gleiche Länge haben. Durch Anpassen der Spaltendefinitionen wird der Fehler behoben und die Fremdschlüsselbeziehung kann erfolgreich hergestellt werden.
Das obige ist der detaillierte Inhalt vonWarum gibt MySQL den Fehler „Fremdschlüsseleinschränkung ist falsch gebildet' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!