Heim >Datenbank >MySQL-Tutorial >Warum gibt MySQL den Fehler „Kann keine untergeordnete Zeile hinzufügen oder aktualisieren: Eine Fremdschlüsseleinschränkung schlägt fehl' (Fehler 1452) aus?
MySQL-Fremdschlüsseleinschränkungsproblem: Untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden
Beim Versuch, eine Fremdschlüsseleinschränkung in einer MySQL-Tabelle einzurichten, haben Sie Möglicherweise tritt der Fehler 1452 auf: „Eine untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl.“ Dieses Problem tritt auf, wenn eine untergeordnete Zeile in einer Tabelle auf eine übergeordnete Zeile verweist, die in einer anderen Tabelle nicht mehr vorhanden ist.
Im bereitgestellten Szenario versuchen Sie, einen Fremdschlüssel in der Tabelle „sourcecodes_tags“ hinzuzufügen, der auf die Tabelle „sourcecodes“ verweist. Die Fehlermeldung deutet jedoch darauf hin, dass es verwaiste Datensätze in der Tabelle „sourcecodes_tags“ gibt, die auf nicht vorhandene Zeilen in der Tabelle „sourcecodes“ verweisen.
Um dieses Problem zu beheben, müssen zunächst die verwaisten Datensätze identifiziert werden. Sie können die folgende Abfrage verwenden, um diese Datensätze abzurufen:
SELECT DISTINCT sourcecode_id FROM sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id WHERE sc.id IS NULL;
Sobald Sie die verwaisten Datensätze identifiziert haben, können Sie sie aus der Tabelle „sourcecodes_tags“ entfernen. Dadurch können Sie die Fremdschlüsseleinschränkung erfolgreich hinzufügen.
Es ist wichtig, die referenzielle Integrität in Ihren Datenbanktabellen sicherzustellen, indem Sie Fremdschlüsseleinschränkungen durchsetzen. Diese Einschränkungen verhindern Dateninkonsistenzen und behalten die Beziehungen zwischen Tabellen bei. Durch die Behandlung verwaister Datensätze können Sie den Fehler 1452 beheben und ordnungsgemäße Beziehungen zwischen Ihren Datenbanktabellen herstellen.
Das obige ist der detaillierte Inhalt vonWarum gibt MySQL den Fehler „Kann keine untergeordnete Zeile hinzufügen oder aktualisieren: Eine Fremdschlüsseleinschränkung schlägt fehl' (Fehler 1452) aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!