Die MySQL-Datenbank -Server ist eine häufig verwendete Open-Source- Datenbank , vor allem im Bereich der Web-Entwicklung . Die nahtlose Integration mit einer Vielzahl von Skriptsprachen , so dass es nützlich für Programmierer sowohl erfahrene als auch neue . Database Server, sind jedoch komplizierte Tiere und MySQL ist keine Ausnahme. Aussortieren seine Fehler und die Ermittlung der besten Praktiken erfordert einige Studien und Erfahrungen . Bedeutung
Die Meldung für den Fehlercode 1062 in MySQL ist " Duplicate entry [ Eintrag Wert] für den Schlüssel [ Name der Taste] . " Das heißt, Sie haben versucht, Daten einfügen , dass Duplikate vorhandener Daten für einen eindeutigen Schlüssel . Zum Beispiel, wenn Sie eine Tabelle von Benutzerkonten und "username" haben, ist ein eindeutiger Schlüssel für diese Tabelle , und ein Eintrag mit dem Benutzernamen " exampleguy " existiert bereits in der Tabelle , wenn Sie eine neue Zeile mit dem Benutzernamen einzufügen " exampleguy ", erhalten Sie eine Fehlermeldung mit dem Code 1062
Mögliche Gründe
die erste Ursache für eine legitime Dateneinfügung Kollision aussehen ; . zum Beispiel , Sie oder Ihre Software nicht überprüfen, ob Ihre Daten ein Duplikat ist , bevor Sie versuchen , um ihn einzufügen . Eine weitere mögliche Ursache ist, dass Sie Ihren Tisch Struktur nicht richtig ausgelegt . Wenn Sie feststellen, dass Sie oft brauchen, um doppelte Elemente einfügen, aber diese Elemente sind in der Tabelle Struktur als eindeutiger Schlüssel definiert , dann ist die Tisch-Design hat ein Problem. Machen Sie, dass Schlüssel nicht eindeutig.
Ways to
Vor Einfügen von Daten in einer Datenbank zu vermeiden , " Plausibilitätsprüfung " es . Wenn eine Tabelle einen eindeutigen Schlüssel hat , sicherzustellen, dass der Schlüssel nicht vor dem Einfügen dupliziert. Verwenden Sie außerdem eindeutige Schlüssel nur gegebenenfalls . In einer Tabelle der Website-Nutzer , zum Beispiel , keine zwei Konten sollten den gleichen Benutzernamen haben , so machen die "username" Spalte einen eindeutigen Schlüssel und auch überprüfen, ob neue Benutzer gewünschten Benutzernamen nicht vor dem Einsetzen der neuen Account-Daten in die gemacht Datenbank . Machen Sie nicht den "Vornamen" Spalte einzigartig, aber, wie dies in Datenkollisionen führen.
Überlegungen
Es mag verlockend sein, entfernen Sie einfach alle einzigartig Indizes , um die Arbeit bei der Prävention 1062 beteiligt Fehler zu vermeiden. Jedoch eindeutige Schlüssel erheblich beschleunigen Datenabruf . Zusätzlich wird für einige Datenelemente es einfach sinnvoll Einzigartigkeit, wie in dem Fall des Benutzernamens Spalte in einer Benutzertabelle durchzusetzen. Umgekehrt sind eindeutige Schlüssel langsamer zu schreiben, weil der Index -Datei muss aktualisiert werden , und sollte nur in Fällen eingesetzt werden , wo man natürlich erwarten können, ein Schlüssel eindeutig sein.