Fehlerbehebung bei MySQL-Fremdschlüsseleinschränkungsfehlern
Die Fremdschlüsseleinschränkungen (FK) von MySQL gewährleisten die Datenintegrität durch die Verknüpfung von Tabellen. Allerdings kann das Hinzufügen von FKs manchmal zu Fehlern führen. Dieser Leitfaden hilft bei der Behebung des häufigen Problems „Fremdschlüsseleinschränkung kann nicht hinzugefügt werden“.
Das Problem:
Beim Hinzufügen von FK-Einschränkungen zwischen den Tabellen Patient
und Appointment
kann dieser Fehler auftreten:
<code>ERROR 1215 (HY000): Cannot add foreign key constraint</code>
Die Ursache finden:
Um das Problem zu diagnostizieren, verwenden Sie diesen Befehl:
<code class="language-sql">SHOW ENGINE INNODB STATUS;</code>
Untersuchen Sie sorgfältig den Abschnitt „LATEST FOREIGN KEY ERROR“ der Ausgabe.
Die Lösung:
Eine häufige Ursache ist eine Nichtübereinstimmung des Datentyps zwischen der untergeordneten und der übergeordneten Spalte. Zum Beispiel:
Patient.MedicalHistory
(Kind) könnte SMALLINT
sein.medicalhistory.MedicalHistoryID
(übergeordnetes Element) könnte INT
sein.Die Lösung? Stellen Sie sicher, dass der Datentyp der untergeordneten Spalte genau mit dem Datentyp der übergeordneten Spalte übereinstimmt. Ändern Sie in diesem Szenario Patient.MedicalHistory
in INT
.
Empfohlene Praxis:
Bevor Sie Tabellen mit FKs erstellen, führen Sie diesen Befehl aus:
<code class="language-sql">SET FOREIGN_KEY_CHECKS=0;</code>
Dadurch können Sie Tabellen in beliebiger Reihenfolge erstellen, ohne dass FK-Einschränkungsfehler aufgrund fehlender übergeordneter Tabellen auftreten. Denken Sie daran, die FK-Prüfungen anschließend wieder zu aktivieren:
<code class="language-sql">SET FOREIGN_KEY_CHECKS=1;</code>
Das obige ist der detaillierte Inhalt vonWarum kann ich in MySQL keine Fremdschlüsseleinschränkung hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!