Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich in MySQL die Fehlermeldung „Fremdschlüsseleinschränkung kann nicht hinzugefügt werden'?

Warum erhalte ich in MySQL die Fehlermeldung „Fremdschlüsseleinschränkung kann nicht hinzugefügt werden'?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 17:44:29415Durchsuche

Why Am I Getting the

Fremdschlüssel-Einschränkungsfehler: Ursachen und Lösungen verstehen

Die Frage betrifft einen Fehler, der beim Erstellen der Kurstabelle in MySQL aufgetreten ist:

ERROR 1215 (HY000): Cannot add foreign key constraint

Dieser Fehler weist auf ein Problem mit der in der SQL-Anweisung angegebenen Fremdschlüsseleinschränkung hin. Eine Fremdschlüsseleinschränkung stellt sicher, dass Daten in der Fremdschlüsselspalte einer Tabelle (z. B. Kurs) auf vorhandene Daten in der Primärschlüsselspalte einer anderen Tabelle (z. B. Abteilung) verweisen.

Um diesen Fehler zu beheben und erfolgreich zu erstellen In der Kurstabelle ist es wichtig, diese Richtlinien zu befolgen:

  • Matching Engine, Datentyp und Sortierung:

    • Beide referenziert Das Feld (dept_name) in der Abteilungstabelle und das Fremdschlüsselfeld (dept_name) in der Kurstabelle müssen dieselbe Engine haben, z. B. InnoDB.
    • Die Felder müssen identische Datentypen haben, einschließlich der Länge. Beispielsweise sollte sowohl VARCHAR(20) als auch INT(10) UNSIGNED.
    • Sortierung, die die Zeichensatzkodierung angibt, ebenfalls übereinstimmen. Typischerweise wird utf8 verwendet.
  • Eindeutigkeit des referenzierten Feldes:

    • Das Feld, auf das der Fremdschlüssel verweist (dept_name in der Abteilungstabelle) müssen eindeutig sein. Dadurch wird sichergestellt, dass jede Zeile in der Kurstabelle korrekt auf eine Zeile in der Abteilungstabelle verweisen kann.
  • NOT NULL-Einschränkungen:

    • Wenn Sie in der Fremdschlüsseleinschränkung eine SET NULL-Option angegeben haben, stellen Sie sicher, dass keine der beteiligten Spalten als NOT NULL definiert ist.

Durch Einhaltung dieser Richtlinien können Sie den Fehler „Fremdschlüsseleinschränkung kann nicht hinzugefügt werden“ vermeiden und eine ordnungsgemäße referenzielle Integrität zwischen den Kurs- und Abteilungstabellen herstellen.

Zusätzlicher Hinweis:

Fremdschlüssel deaktivieren Durch Prüfungen mit SET FOREIGN_KEY_CHECKS=0 können Sie möglicherweise die Tabelle mit der fehlerhaften Einschränkung erstellen, dies wird jedoch nicht empfohlen. Diese Einstellung kann zu Dateninkonsistenzen und Datenbankbeschädigungen führen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in MySQL die Fehlermeldung „Fremdschlüsseleinschränkung kann nicht hinzugefügt werden'?. 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