Heim > Datenbank > MySQL-Tutorial > Warum kann ich in MySQL keine Fremdschlüsseleinschränkung hinzufügen?

Warum kann ich in MySQL keine Fremdschlüsseleinschränkung hinzufügen?

Linda Hamilton
Freigeben: 2025-01-18 20:16:10
Original
842 Leute haben es durchsucht

Why Can't I Add a Foreign Key Constraint in MySQL?

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>
Nach dem Login kopieren

Die Ursache finden:

Um das Problem zu diagnostizieren, verwenden Sie diesen Befehl:

<code class="language-sql">SHOW ENGINE INNODB STATUS;</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage