Heim > Datenbank > MySQL-Tutorial > Warum gibt MySQL den Fehler „Fremdschlüsseleinschränkung ist falsch gebildet' aus?

Warum gibt MySQL den Fehler „Fremdschlüsseleinschränkung ist falsch gebildet' aus?

DDD
Freigeben: 2025-01-19 05:55:10
Original
279 Leute haben es durchsucht

Why Does MySQL Throw a

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:

  • Tabelle1: Enthält eine ID Spalte (Primärschlüssel) mit einem CHAR Datentyp.
  • Tabelle2: Enthält eine 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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage