Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich einen MySQL-Fremdschlüsseleinschränkungsfehler (Fehlercode 1452)?

Warum erhalte ich einen MySQL-Fremdschlüsseleinschränkungsfehler (Fehlercode 1452)?

Barbara Streisand
Barbara StreisandOriginal
2025-01-21 05:20:13656Durchsuche

Why Am I Getting a MySQL Foreign Key Constraint Failure (Error Code 1452)?

MySQL-Fremdschlüsseleinschränkung fehlgeschlagen: Fehlercode 1452

Beim Versuch, einen Wert in die ORDRELINJE-Tabelle in einer MySQL-Datenbank einzufügen, ist ein Fehler mit der Meldung „Fehlercode: 1452. Untergeordnete Zeile konnte nicht hinzugefügt oder aktualisiert werden: Fremdschlüsseleinschränkung fehlgeschlagen“ aufgetreten.

Fremdschlüsseleinschränkungen verstehen

Fremdschlüsseleinschränkungen gewährleisten die referenzielle Integrität in relationalen Datenbanken. Ein Fremdschlüssel ist eine Spalte in einer untergeordneten Tabelle, die auf eine Primärschlüsselspalte in der übergeordneten Tabelle verweist. Wenn eine Zeile in die untergeordnete Tabelle eingefügt oder aktualisiert wird, muss der Wert des Fremdschlüssels mit einem vorhandenen Wert in der Primärschlüsselspalte der übergeordneten Tabelle übereinstimmen.

Fehleranalyse

In diesem Fall weist der Fehler darauf hin, dass die Tabelle ORDRELINJE über eine Fremdschlüsseleinschränkung verfügt, die auf die Tabelle Ordre verweist. Beim Versuch, eine Zeile in die Tabelle ORDRELINJE einzufügen, stimmt der Wert der Spalte Ordre mit keiner vorhandenen Zeile in der Tabelle Ordre überein.

Fehler beheben

Um diesen Fehler zu beheben, stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:

  1. Übereinstimmende Zeilen in der übergeordneten Tabelle: Der Wert der Spalte „Ordre“ in der Tabelle „ORDRELINJE“ sollte mit dem vorhandenen Wert der Spalte „OrdreID“ in der Tabelle „Ordre“ übereinstimmen. Fügen Sie bei Bedarf zunächst die entsprechenden Zeilen in die Ordre-Tabelle ein.
  2. Datentypkompatibilität: Die Datentypen der Fremdschlüsselspalte (Ordre) und der Primärschlüsselspalte, auf die sie verweist (OrdreID), müssen übereinstimmen.
  3. Kaskadierungsverhalten: Konfigurieren Sie eine Fremdschlüsseleinschränkung, um das Einfügen von Zeilen in eine untergeordnete Tabelle zu ermöglichen, auch wenn in der übergeordneten Tabelle keine übereinstimmenden Zeilen vorhanden sind. Dies kann erreicht werden, indem beim Erstellen der Fremdschlüsseleinschränkung die Option ON DELETE CASCADE oder ON UPDATE CASCADE verwendet wird.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen MySQL-Fremdschlüsseleinschränkungsfehler (Fehlercode 1452)?. 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