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?

Warum gibt MySQL den Fehler „Kann keine untergeordnete Zeile hinzufügen oder aktualisieren: Eine Fremdschlüsseleinschränkung schlägt fehl' (Fehler 1452) aus?

Susan Sarandon
Susan SarandonOriginal
2024-12-21 00:01:11146Durchsuche

Why Does MySQL Throw

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!

Stellungnahme:
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