#1062 - Duplicate entry '1' for key 1 - Keine doppelten Einträge gefunden
Also, wenn Sie versuchen, um eine autoincrement -, um ein Feld, es kommt mit der #1062 - Duplicate entry '1' for key 1 . Ich habe versucht, das entfernen der primary key und re-adding es und das funktioniert auch (was ich davon ausgehen würde das nicht, wenn es Duplikate?)
Aber wenn ich versuche, fügen Sie ein autoincrement auf das Feld wirft es einen Fehler. Es gibt mir die option durchsuchen, die ausgeführt wird den folgenden SQL:
SELECT *
FROM `myTbl`
WHERE CONCAT_WS( "-", 11 ) = "1"
ORDER BY 11
LIMIT 0 , 30
Jedoch dies gibt ein leeres ResultSet.. was darauf hindeutet, gibt es keine Duplikate. Also, wenn keine Duplikate vorhanden sind, Woher die kommen kann ich nicht hinzufügen, eine autoincrement?
- Was erwarten Sie das Ergebnis der
CONCAT_WS( "-", 11 )
zu werden? Ich bekomme immer 11... - Poste bitte das Ergebnis von
SHOW CREATE TABLE myTbl
dem Befehl, den Sie hinzufügen autoincrement. Beachten Sie auch, dassCONCAT_WS('-', 11) = '1'
wird immer ausgewertetFALSE
. Sie können nicht verwendet Feld ist die Ordnungszahl in derWHERE
- Klausel, wie Sie es inORDER BY
. - Damit Sie nicht denken, ich bin ein Durcheinander, ich wollte nicht schreiben, dass SQL - erzeugt von phpMyAdmin beim drücken der Schaltfläche "durchsuchen", nachdem es den Fehler generiert hat. Ich denke, die unterhalb poster (Michael Mior) ist richtig, und ich bin jetzt versuchen, die Lösung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie alle Zeilen mit Wert
0
oderNULL
für diese Spalte?ALTER TABLE
verursachen können primary keys werden resequenced. Im Falle des Schlüssels von 0, MySQL werde versuchen, es den Wert 1, die fehlschlagen wird, wenn die Taste 1 ist bereits vorhanden.Versuchen Sie jede
0
oderNULL
Werte in der Spalte etwas höher (und unbenutzt).0
.Michael Mior Antwort funktioniert, wenn Sie ändern die Daten in der Tabelle. Es gibt jedoch auch einen workaround, mit dem Sie die Daten erhalten (habe ich getestet auf MySQL 5.5). Denken Sie daran, dass mit einem null-Wert als Primärschlüssel in MySQL wird nicht empfohlen, nur aus diesem Grund. Wenn Sie loswerden der null, dann tun Sie es.
Deaktivieren Sie die automatische generation Wert, wenn eine null eingefügt:
Add AUTO_INCREMENT zu Ihrer Spalte:
Re-aktivieren Sie die automatische Wertschöpfung:
Sollte es offensichtlich sein, dass das einfügen von Daten in die Tabelle während dieser ganzen operation nicht erlaubt werden kann. Sonst gibt es unerwünschte Nullwerte in der Spalte.
schreiben Sie die Abfrage
Wenn Sie möchten, um eine Zeile einzufügen, verwenden Sie code wie diesen:
Wenn Sie möchten, wählen Sie alle doppelten Zeilen verwenden:
Werden Sie brauchen, um diese zu aktualisieren-id ' s aufgelistet sind als doppelte.
Weitere option ist das hinzufügen einer zusätzlichen Spalte und drop die alte PK.
AUTO_INCREMENT
einer Spalte. Ich sehe nicht, wie löst dies das Problem.