MySQL Foreign Key Constraint Error Troubleshooting Guide
Einführung
Beim Festlegen von Fremdschlüsseleinschränkungen für Tabellen in der Datenbank können beim Erstellen oder Ändern Fehler auftreten. Ein solcher Fehler ist „FEHLER 1215 (HY000): Fremdschlüsseleinschränkung kann nicht hinzugefügt werden“.
Fall: Probleme mit Fremdschlüsseleinschränkungen in Patienten- und Termintabellen
Bei der folgenden SQL-Abfrage ist beim Versuch, eine Fremdschlüsseleinschränkung zu den Patienten- und Termintabellen hinzuzufügen, ein Fehler aufgetreten:
<code class="language-sql">CREATE TABLE IF NOT EXISTS `doctorsoffice`.`Patient` ( ... CONSTRAINT `FK_MedicalHistory` FOREIGN KEY (`MedicalHistory`) REFERENCES `doctorsoffice`.`medicalhistory` (`MedicalHistoryID`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_PrimaryPhysician` FOREIGN KEY (`PrimaryPhysician`) REFERENCES `doctorsoffice`.`doctor` (`DoctorID`) ON DELETE CASCADE ON UPDATE CASCADE ); CREATE TABLE IF NOT EXISTS `doctorsoffice`.`Appointment` ( ... CONSTRAINT `FK_Patient` FOREIGN KEY (`Patient`) REFERENCES `doctorsoffice`.`Patient` (`PatientID`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_Doctor` FOREIGN KEY (`Doctor`) REFERENCES `doctorsoffice`.`doctor` (`DoctorID`) ON DELETE CASCADE ON UPDATE CASCADE );</code>
Lösung: Überprüfen Sie die Datentypkompatibilität
Um dieses Problem zu beheben, überprüfen Sie, ob die Datentypen der an der Fremdschlüsseleinschränkung beteiligten Spalten kompatibel sind. Stellen Sie in diesem Fall sicher:
Nachdem Sie diese Datentypkonflikte korrigiert haben, können Sie die Fremdschlüsseleinschränkung erfolgreich hinzufügen.
Zusätzlicher Tipp: Deaktivieren Sie die Fremdschlüsselprüfung
Um beim Erstellen von Tabellen in einer bestimmten Reihenfolge mehr Flexibilität zu bieten, sollten Sie den folgenden Befehl verwenden, bevor Sie die SQL-Abfrage ausführen:
<code class="language-sql">SET foreign_key_checks=0;</code>
Dieser Befehl deaktiviert vorübergehend die Fremdschlüsselprüfung, sodass Tabellen unabhängig von Abhängigkeiten zwischen übergeordneten und untergeordneten Tabellen erstellt werden können. Nachdem die Tabelle erstellt wurde, kann die Fremdschlüsselprüfung mit dem folgenden Befehl wieder aktiviert werden:
<code class="language-sql">SET foreign_key_checks=1;</code>
Durch Befolgen dieser Richtlinien können Sie sicherstellen, dass Fremdschlüsseleinschränkungen korrekt in Ihrer Datenbank implementiert werden, wodurch Fehler verhindert und die Datenintegrität gewahrt bleibt.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Fremdschlüsseleinschränkung kann nicht hinzugefügt werden' in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!