Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL-Fehler 1022: Warum erhalte ich beim Erstellen einer Tabelle einen Fehler wegen doppeltem Schlüssel?

Patricia Arquette
Freigeben: 2024-10-28 04:50:30
Original
724 Leute haben es durchsucht

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

MySQL-Fehler 1022: Lokalisierung der Duplizierung

Beim Erstellen einer Tabelle kann es verwirrend sein, auf den MySQL-Fehler 1022 zu stoßen, insbesondere wenn die SQL-Anweisung gültig erscheint . Lassen Sie uns das Problem untersuchen und die zugrunde liegende Ursache identifizieren.

In der bereitgestellten SQL wird erwähnt, dass nur ein Schlüssel für die Tabelle definiert ist. Das Problem scheint jedoch in der Fremdschlüsseldefinition zu liegen. MySQL löst den Fehler 1022 aus, wenn versucht wird, während der Tabellenerstellung einen doppelten Schlüssel einzufügen.

Das Problem ergibt sich aus der Tatsache, dass der Fremdschlüsselname (error_id) mit dem Namen eines anderen Fremdschlüssels an anderer Stelle im Modell identisch ist. Um dies zu verstehen, stellen Sie sich das folgende Szenario vor:

  • Tabelle „Katalog“ enthält einen Fremdschlüssel mit dem Namen „Lieferant“, der auf die Tabelle „Lieferant“ verweist.
  • Tabelle „Produkt“ enthält außerdem einen Fremdschlüssel mit dem Namen „Lieferant“, der auf dieselbe Tabelle „Lieferant“ verweist.

Wenn nun beide Fremdschlüssel den gleichen Namen („Lieferant“) haben, interpretiert MySQL dies als „Kollision“ im Fremdschlüssel Schlüsselnamen. Um das Problem zu lösen, muss jeder Fremdschlüssel innerhalb des gesamten Schemas einen eindeutigen Namen haben.

Sie könnten beispielsweise andere Namen verwenden wie:

  • catalog_supplier für den Fremdschlüssel in Tabelle „Katalog“
  • Produktlieferant für den Fremdschlüssel in Tabelle „Produkt“

Durch die Unterscheidung von Fremdschlüsselnamen kann MySQL zwischen ihnen unterscheiden und die referenzielle Integrität beim Erstellen der Tabellen korrekt handhaben .

Das obige ist der detaillierte Inhalt vonMySQL-Fehler 1022: Warum erhalte ich beim Erstellen einer Tabelle einen Fehler wegen doppeltem Schlüssel?. 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!