Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

Barbara Streisand
Freigeben: 2024-11-01 14:26:29
Original
118 Leute haben es durchsucht

 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 bestimmter Ausschnitt innerhalb der Tabellendefinition den Fehler auslöst:

<code class="sql">CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,</code>
Nach dem Login kopieren

Während ähnliche Fremdschlüsseldefinitionen problemlos in anderen Tabellen vorhanden sind, liegt das Problem im Namen des Fremdschlüssels: error_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.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich den MySQL-Fehler 1022: „Kann nicht schreiben; doppelter Schlüssel in der Tabelle.' Obwohl ich nur einen Schlüssel habe?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!