Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich beim Erstellen einer Tabelle den MySQL-Fehler 1022 (doppelter Schlüssel)?

Warum erhalte ich beim Erstellen einer Tabelle den MySQL-Fehler 1022 (doppelter Schlüssel)?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-30 17:00:12267Durchsuche

Why Am I Getting a MySQL Error 1022 (Duplicate Key) When Creating a Table?

Kann nicht schreiben; Doppelter Schlüssel beim Erstellen einer Tabelle

Beim Versuch, eine neue Tabelle zu erstellen, tritt aufgrund doppelter Primärschlüsseleinträge der Fehler 1022 auf. Selbst nach Durchsicht der Abfrage kann es für Sie schwierig sein, die Quelle der Duplizierung zu ermitteln. Lassen Sie uns dies weiter untersuchen.

Die von Ihnen bereitgestellte Abfrage enthält eine Einschränkung namens „iduser“ als Fremdschlüssel für die Spalte „userId“. Darüber hinaus wird eine Einschränkung namens „idcategory“ für die Spalte „circleId“ angegeben. Diese Einschränkungsnamen scheinen die Ursache des Problems zu sein.

Einschränkungen und Duplikation

Einschränkungen in MySQL müssen in der gesamten Datenbank eindeutig sein, nicht nur für die bestimmte Tabelle erstellt oder geändert werden. Daher ist es möglich, dass Ihre Datenbank bereits andere Tabellen oder Indizes enthält, die die Einschränkungsnamen „iduser“ oder „idcategory“ verwenden. Dieser Konflikt führt zum Fehler wegen doppelter Schlüssel.

Identifizieren doppelter Einschränkungen

Um festzustellen, wo diese Einschränkungen derzeit verwendet werden, führen Sie die folgende Abfrage aus:

SELECT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');

Diese Abfrage zeigt die Tabellen und Schemas an, in denen die Einschränkungen „iduser“ und „idcategory“ gelten referenziert.

Lösung

Um den Fehler zu beheben, müssen Sie die doppelten Einschränkungen umbenennen. Erwägen Sie die Verwendung eindeutiger Namen, die spezifisch für die aktuelle Tabelle sind, z. B. „fk_user“ für die Fremdschlüsseleinschränkung in der Spalte „userId“. Sobald die Einschränkungen umbenannt und die Abfrage aktualisiert wurde, sollten Sie die Tabelle auch ohne erfolgreich erstellen können der doppelte Schlüsselfehler.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Erstellen einer Tabelle den MySQL-Fehler 1022 (doppelter Schlüssel)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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