„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 1022: „Kann nicht schreiben; doppelter Schlüssel in der Tabelle.“ Obwohl ich nur einen Schlüssel habe?

Warum erhalte ich den MySQL-Fehler 1022: „Kann nicht schreiben; doppelter Schlüssel in der Tabelle.“ Obwohl ich nur einen Schlüssel habe?

Veröffentlicht am 07.11.2024
Durchsuche:509

 Why Am I Getting MySQL Error 1022: \

MySQL-Fehler 1022: Eine Kollision von Fremdschlüsselnamen

Beim Versuch, eine Tabelle mit MySQL zu erstellen, stoßen Sie auf Fehler 1022: „Schreiben nicht möglich; doppelter Schlüssel.“ in der Tabelle.“ Das Besondere daran ist, dass die Tabelle nur einen einzigen Schlüssel definiert, der Fehler jedoch weiterhin besteht.

Bei der Untersuchung scheint es, dass ein bestimmtes Snippet innerhalb der Tabellendefinition den Fehler auslöst:

CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,

Während ähnliche Fremdschlüsseldefinitionen in anderen Tabellen ohne Probleme vorhanden sind, liegt das Problem im Namen des Fremdschlüssels: Fehler-ID.

Die Grundursache:

Das Problem entsteht, weil ein Fremdschlüsselname nicht mit einem anderen Fremdschlüsselnamen im gesamten Datenbankmodell identisch sein kann. Das bedeutet, dass, wenn zwei Tabellen auf dieselbe Tabelle verweisen, die Fremdschlüssel in jeder Tabelle eindeutige Namen haben müssen.

Lösung:

Um den Fehler zu beheben, geben Sie einfach die ein Der betreffende Fremdschlüssel hat einen anderen Namen. Sie könnten es beispielsweise fk_error_id nennen. Dadurch wird er von jedem anderen Fremdschlüssel im Modell unterschieden und MySQL kann die Tabelle erfolgreich erstellen.

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