Ich habe eine Datei, die ich erfolgreich zu einer Tabelle aktualisiert habe. Nun muss ich es erneut so machen, dass die Daten nicht wiederholt werden.Einfügen nicht wiederholter Daten in Tabelle
meine Zieltabelle:
mysql> show columns from MARCAS;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| ID_MARCA | int(11) | NO | PRI | NULL | auto_increment |
| MARCA | varchar(50) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
Also, was ich tat, war eine temporäre Tabelle und geladene Daten aus der Datei in es zu erstellen.
Kode:
CREATE TEMPORARY TABLE tempe LIKE marcas;
LOAD DATA LOCAL INFILE myfile.txt
INTO TABLE MARCAS
FIELDS TERMINATED BY '#' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(ID_MARCA, MARCA, @ignore1, @ignore2, @ignore3);
Alle hier in Ordnung. Das Problem beginnt, wenn ich versuche, schlau zu sein und 'ON DUPLICATE KEY' (wie hier) zu verwenden, um Daten aus der temporären Tabelle in die Tabelle MARCAS einzufügen, da sich die Daten nicht selbst wiederholen. Der Code, den ich verwendet wurde:
INSERT into MARCAS select * from TEMPE on duplicate key update MARCA=values(MARCA);
Das Ergebnis:
mysql> select * from MARCAS;
+----------+---------+
| ID_MARCA | MARCA |
+----------+---------+
| 1 | PICASSA |
| 2 | PICASSA |
| 3 | C4 |
| 4 | C4 |
| 5 | C3 |
| 6 | C3 |
| 7 | C2 |
| 8 | C2 |
| 9 | MONDEO |
| 10 | MONDEO |
| 11 | S-MAX |
| 12 | S-MAX |
| 13 | CIVIC |
| 14 | CIVIC |
| 15 | ACCORD |
| 16 | ACCORD |
| 17 | CLS |
| 18 | 900 |
| 19 | LEON |
| 20 | LEON |
| 21 | IBIZA |
| 22 | IBIZA |
| 23 | 307 |
| 24 | 307 |
| 25 | 308 |
| 26 | 308 |
| 27 | 407 |
| 28 | 407 |
| 29 | 408 |
| 30 | 408 |
| 31 | MEGANE |
| 32 | MEGANE |
| 33 | PASSAT |
| 34 | PASSAT |
| 35 | GOLF |
| 36 | GOLF |
| 37 | TOUAREG |
+----------+---------+
Nicht beeindruckt mich. Was mache ich falsch?
Dank erhalten! wie immer sehr hilfreich. :-) was mir auch aufgefallen ist, dass meine Daten aus der zweiten Spalte in Datei geladen werden. Zuerst wird es komplett ignoriert. Irgendein Grund dafür? – CNB
und es war mir eine Freude, Ihnen behilflich zu sein. alles Gute mit deinem Projekt – e4c5
Nevermind, gefunden, wo ich falsch lag. :-) – CNB