Fehler durch doppelten Schlüssel bei der Tabellenerstellung: Fehlerbehebung bei „Fehler 1022“
Ein Benutzer ist auf den berüchtigten „Fehler 1022: Schreiben nicht möglich; Fehler „Duplizierter Schlüssel in Tabelle“ beim Versuch, eine neue Tabelle zu erstellen. Bei der Untersuchung der SQL-Abfrage war die Quelle der Duplizierung nicht sofort ersichtlich.
Die Abfrage erstellte eine Tabelle namens „usercircle“ mit mehreren Spalten, einschließlich idUserCircle, userId und CircleId. Außerdem wurden ein Primärschlüssel für „idUserCircle“ und Fremdschlüsseleinschränkungen angegeben, die auf die Benutzer- und Kreistabellen in den Spalten „userId“ bzw. „circleId“ verweisen.
Identifizierung des Konflikts
Der Schlüssel Um diesen Fehler zu beheben, müssen Sie erkennen, dass Einschränkungen, einschließlich Fremdschlüsseleinschränkungen, in der gesamten Datenbank und nicht nur innerhalb einer bestimmten Tabelle eindeutig sein müssen. Daher ist das zugrunde liegende Problem wahrscheinlich ein doppelter Einschränkungsname an anderer Stelle in der Datenbank.
Lösung
Um festzustellen, welche Einschränkungen in Konflikt stehen, kann der Benutzer die folgende Abfrage ausführen:
SELECT `TABLE_SCHEMA`, `TABLE_NAME` FROM `information_schema`.`KEY_COLUMN_USAGE` WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');
Diese Abfrage zeigt, welche Tabellen und Spalten derzeit die Einschränkungen iduser und idcategory verwenden. Durch Umbenennen der doppelten Einschränkung(en) kann der Benutzer den Fehler beheben und die Tabelle „usercircle“ erfolgreich erstellen.
Zusätzliche Tipps
Das obige ist der detaillierte Inhalt vonWie behebe ich den MySQL-Fehler 1022: Doppelter Schlüssel bei der Tabellenerstellung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!