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>
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!