2017-07-14 2 views
1

Also, im Grunde habe ich diesen Code unten, um das Datumsformat von CSV zu ändern, so dass es von MySQL erkannt werden kann, wenn ich es importiere.So lösen Sie doppelten Eintrag für den Schlüssel 'PRIMARY' nach dem Laden von Daten infile

LOAD DATA INFILE 'file.csv' 
INTO TABLE customer FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' 
(
    ID, name, @var1, age 
) 
SET date = STR_TO_DATE(@var1, '%d/%m/%Y') 

Nun betrachten Sie die ID ist der Schlüssel PRIMARY. Ich erhalte ein Update für meine Datei.csv und möchte sie erneut auf MySQL laden, indem ich meinen Code erneut ausführe. Statt nur den neuen Datensatz aktualisieren, geben sie mir diese Fehlermeldung:

#1062 - Duplicate entry '05' for key 'PRIMARY' 

Gibt es eine Möglichkeit die gleiche ID zu ignorieren und nur den neuen Datensatz mit verschiedener ID hinzufügen?

+0

können Sie in diesem Fall ersetzen oder ignorieren. Dieser Link könnte helfen (https://dev.mysql.com/doc/refman/5.7/en/load-data.html) –

+0

https://stackoverflow.com/questions/15271202/mysql-load-data-infile- with-on-duplicate-key-update – TheSatinKnight

Antwort

0

MySQL keine Duplizierung von PKs erlauben, weil jeder Primary key ein

Unique Key

ist, was Sie tun können, schlage ich vor, ist zu AUTO_INCREMENT die ID. Wenn Sie die Datensätze wirklich einfügen möchten, anstatt sie zu aktualisieren.

Stellen Sie außerdem sicher, dass beim Einfügen der CSV-Datei keine ID enthalten ist. Sie möchten also, dass es automatisch in der Tabelle aufgefüllt wird.

+0

Und stellen Sie sicher, dass Sie AUTO_INCREMENT mit dem richtigen ID-Wert starten –

Verwandte Themen