„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum erhalte ich den MySQL-Fehler 1215: „Fremdschlüsseleinschränkung kann nicht hinzugefügt werden“?

Warum erhalte ich den MySQL-Fehler 1215: „Fremdschlüsseleinschränkung kann nicht hinzugefügt werden“?

Veröffentlicht am 04.11.2024
Durchsuche:655

 Why Am I Getting MySQL Error 1215: \

MySQL-Fehler 1215: „Fremdschlüsseleinschränkung kann nicht hinzugefügt werden“

Beim Versuch, eine Fremdschlüsseleinschränkung in MySQL zu erstellen, ist es wichtig, Folgendes zu tun Stellen Sie sicher, dass sowohl das referenzierte Feld als auch das Fremdschlüsselfeld bestimmte Anforderungen erfüllen. So diagnostizieren und beheben Sie diesen Fehler:

Engine-Konsistenz

  • Die „InnoDB“-Engine muss für beide beteiligten Tabellen verwendet werden.

Datentyp und Länge

  • Die Datentypen und Längen beider Felder sollten genau übereinstimmen. Wenn das referenzierte Feld beispielsweise VARCHAR(20) ist, sollte das Fremdschlüsselfeld auch VARCHAR(20) sein.

Collation

  • Die Sortierung gibt Zeichensatz- und Sortierregeln an. Beide Felder sollten die gleiche Sortierung verwenden, z. B. utf8.

Einzigartigkeit

  • Das referenzierte Feld muss eindeutig sein, was oft durch „primär“ oder „einzigartig“ gekennzeichnet ist Schlüssel. Das Fremdschlüsselfeld kann nicht auf Felder verweisen, die doppelte Werte zulassen.

Null-Handhabung

  • Stellen Sie sicher, dass Sie keine SET NULL-Bedingung definiert haben, wenn Einige referenzierte Spalten werden als NICHT NULL deklariert.

Zusätzliche Symptome

Wenn der Fehler weiterhin besteht, führen Sie den Befehl SHOW ENGINE INNODB STATUS aus; um genauere Details anzuzeigen.

Falsche Anweisung

Die bereitgestellte SQL-Anweisung erstellt eine Tabelle mit dem Namen „course“ mit einer Fremdschlüsseleinschränkung, die auf die Tabelle „department“ verweist Feld „Abteilungsname“. Diese Aussage ist jedoch falsch, da ihr die Datentypspezifikation für das Feld „dept_name“ fehlt. Um dies zu beheben, sollte die Anweisung wie folgt geändert werden:

create table course (
    course_id varchar(7),
    title varchar(50),
    dept_name varchar(20),
    credits numeric(2,0),
    primary key(course_id),
    foreign key (dept_name) references department(dept_name)
);
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3