Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich die Meldung „Fehler im Datentyp des untergeordneten Feldes beim Hinzufügen einer Fremdschlüsseleinschränkung'?

Warum erhalte ich die Meldung „Fehler im Datentyp des untergeordneten Feldes beim Hinzufügen einer Fremdschlüsseleinschränkung'?

DDD
DDDOriginal
2025-01-18 20:21:12693Durchsuche

Why Am I Getting

Beheben von Fremdschlüsseleinschränkungsfehlern: „Fehler im Datentyp des untergeordneten Felds beim Hinzufügen einer Fremdschlüsseleinschränkung“

Diese Anleitung befasst sich mit dem häufigen SQL-Fehler „FEHLER 1215 (HY000): Fremdschlüsseleinschränkung kann nicht hinzugefügt werden“, wenn Fremdschlüsselbeziehungen zwischen den Tabellen „Patient“, „Appointment“ und „MedicalHistory“ erstellt werden. Die Hauptursache ist normalerweise eine Typinkongruenz zwischen den untergeordneten und übergeordneten Spalten, die an der Einschränkung beteiligt sind.

So diagnostizieren und beheben Sie das Problem:

  1. Datentypüberprüfung: Untersuchen Sie sorgfältig die Datentypen der relevanten Spalten: Stellen Sie sicher, dass die Spalte „MedicalHistory“ in der Tabelle „Patient“ genau mit der Spalte „MedicalHistoryID“ in der Tabelle „MedicalHistory“ übereinstimmt. Stellen Sie außerdem sicher, dass die Spalte „Patient“ in der Tabelle „Termin“ genau die Spalte „PatientID“ in der Tabelle „Patient“ widerspiegelt. Selbst geringfügige Unterschiede (z. B. INT vs. SMALLINT, VARCHAR(255) vs. VARCHAR(256)) verhindern, dass die Einschränkung hinzugefügt wird.

  2. Vorübergehende Deaktivierung der Fremdschlüsselprüfung: Bevor Sie Ihre ALTER TABLE-Anweisungen zum Hinzufügen von Fremdschlüsseln ausführen, führen Sie SET FOREIGN_KEY_CHECKS=0; aus. Dadurch werden Fremdschlüsselprüfungen vorübergehend deaktiviert, sodass die Tabellenerstellung in beliebiger Reihenfolge möglich ist. Denken Sie daran, sie anschließend mit SET FOREIGN_KEY_CHECKS=1;.

    wieder zu aktivieren
  3. Detaillierte Fehleranalyse: Verwenden Sie SHOW ENGINE INNODB STATUS;, um den Abschnitt „LATEST FOREIGN KEY ERROR“ zu überprüfen. Dadurch werden spezifische Details zur fehlgeschlagenen Einschränkung bereitgestellt und die genaue Spalte ermittelt, die das Problem verursacht.

  4. Anschauliches Beispiel:Wenn „MedicalHistoryID“ in der Tabelle „MedicalHistory“ als INT definiert ist, muss „MedicalHistory“ in der Tabelle „Patient“ auch sein >, nicht INT oder irgendein anderer Typ.SMALLINT

Durch den sorgfältigen Vergleich der Datentypen und die Verwendung der oben genannten Diagnosetools können Sie diesen Fremdschlüsseleinschränkungsfehler effektiv beheben und die richtigen Beziehungen zwischen Ihren Tabellen herstellen. Denken Sie daran, die Fremdschlüsselprüfungen (

) nach dem Erstellen Ihrer Einschränkungen wieder zu aktivieren.SET FOREIGN_KEY_CHECKS=1;

Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Meldung „Fehler im Datentyp des untergeordneten Feldes beim Hinzufügen einer Fremdschlüsseleinschränkung'?. 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