Verletzung der MySQL-Fremdschlüsseleinschränkung: Fehler 1452
Beim Versuch, eine Fremdschlüsseleinschränkung zwischen zwei Tabellen einzurichten, kann der Fehler „ MySQL-Fehler 1452 – Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl.“ Dieser Fehler deutet darauf hin, dass eine Inkonsistenz zwischen den referenzierten und referenzierenden Tabellen besteht.
Die Untersuchung der CREATE TABLE-Anweisungen für beide Tabellen zeigt Folgendes:
Der Fehler tritt insbesondere auf, wenn versucht wird, eine Fremdschlüsseleinschränkung hinzuzufügen sourcecodes_tags zu sourcecodes.
Um diesen Fehler zu beheben, ist es wahrscheinlich, dass die Tabelle „sourcecodes_tags“ Werte für enthält sourcecode_id, die nicht mehr in der Tabelle „sourcecodes“ vorhanden sind.
Um diese inkonsistenten Werte zu identifizieren, führen Sie die folgende Abfrage aus:
SELECT DISTINCT sourcecode_id FROM sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id WHERE sc.id IS NULL;
Diese Abfrage gibt eine Liste von sourcecode_id-Werten aus sourcecodes_tags zurück, die nicht vorhanden sind entsprechen allen gültigen Einträgen in Quellcodes. Durch Entfernen dieser inkonsistenten Werte aus sourcecodes_tags kann die Fremdschlüsseleinschränkung erfolgreich eingerichtet werden.
Das obige ist der detaillierte Inhalt vonMySQL-Fehler 1452: Wie behebt man Verstöße gegen Fremdschlüsseleinschränkungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!