Heim >Datenbank >MySQL-Tutorial >Warum gibt MySQL den Fehler „Fremdschlüsseleinschränkung ist falsch gebildet' aus und wie kann ich ihn beheben?

Warum gibt MySQL den Fehler „Fremdschlüsseleinschränkung ist falsch gebildet' aus und wie kann ich ihn beheben?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-19 05:54:10220Durchsuche

Why Does MySQL Throw a

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!

Stellungnahme:
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