Heim > Datenbank > MySQL-Tutorial > 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'?

Linda Hamilton
Freigeben: 2024-10-26 22:36:31
Original
626 Leute haben es durchsucht

 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.

Sortierung

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

Einzigartigkeit

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

Null-Behandlung

  • 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 preiszugeben.

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 Erklärung wie folgt geändert werden:

<code class="sql">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)
);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum erhalte ich den MySQL-Fehler 1215: „Fremdschlüsseleinschränkung kann nicht hinzugefügt werden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage