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