Fremdschlüsseleinschränkungsfehler in MySQL: Ursachen und Lösungen
Der Fehler „FEHLER 1215 (HY000): Fremdschlüsseleinschränkung kann nicht hinzugefügt werden“ entsteht beim Definieren einer Fremdschlüsselreferenz zwischen zwei Tabellen in MySQL. Um dieses Problem zu beheben, ist es wichtig sicherzustellen, dass bestimmte Kriterien sowohl für das referenzierte Feld als auch für das Fremdschlüsselfeld erfüllt sind:
Engine-Kompatibilität:
Beide Felder müssen sich in Tabellen mit befinden die gleiche Engine, typischerweise InnoDB.
Datentyp und Länge:
Die Datentypen und Längen der Felder müssen identisch sein. Wenn das referenzierte Feld beispielsweise ein VARCHAR(20) ist, sollte das Fremdschlüsselfeld auch VARCHAR(20) sein.
Sortierung:
Die Sortierung der Felder sollte übereinstimmen auch zum Beispiel utf8.
Eindeutigkeit:
Das referenzierte Feld in der übergeordneten Tabelle sollte eindeutig sein oder als PRIMARY KEY deklariert werden, um sicherzustellen, dass jede Zeile in der untergeordneten Tabelle einen hat eine gültige Referenz.
NULL-Einschränkungen:
Wenn das Fremdschlüsselfeld NULL-Werte zulässt, sollte das referenzierte Feld auch NULL-Werte zulassen.
Exklusiv Ausführung:
Bestimmte Szenarien erfordern möglicherweise die ausschließliche Ausführung der Fremdschlüsselerstellungsanweisung ohne andere gleichzeitige Abfragen. Dies kann beispielsweise durch Starten einer Transaktion erreicht werden:
<code class="sql">BEGIN; CREATE TABLE course ( ... ); COMMIT;</code>
Zusätzliche Maßnahmen:
Denken Sie daran, dass unbedingt überprüft werden muss, ob alle diese Bedingungen erfüllt sind, um eine erfolgreiche Erstellung von Fremdschlüsseleinschränkungen sicherzustellen.
Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, die jeweils einen anderen Aspekt des Artikels hervorheben: Kurz und allgemein: * Warum kann ich in MySQL keine Fremdschlüsseleinschränkung hinzufügen? * Fehlerbehebung bei der Fremdschlüsseleinschränkung E. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!