newit1
Goto Top

CSV Import in Datenbank

Hallo
Ich habe folgendes Problem:
Ich lade mittels der unterstehenden Befehle eine CSV-Datei in eine Datenbank. Den Aufbau der CSV findet ihr unten.
Allerdings wird nur die erste Zeile der CSV importiert, vermutlich da die "2" nicht als Zeile 2 erkannt wird.

Wie kann ich das mit einem zusätzlichen Befehl umgehen??

Ich denke dabei an etwas wie...
LINES STARTING BY ' '   



1;Vorname;Nachname;Geburtsjahr2;Vorname;Nachname;Geburtsjahr3;Vorname;Nachname.... usw.

mysql --user=root --password=12345 \
-e "USE database1;" \  
-e "CREATE TABLE IF NOT EXISTS tl_1_backup LIKE tl_2;" \  
-e "TRUNCATE TABLE tl_2;" \  
-e "LOAD DATA INFILE \"/pfad/zu/der/datei.csv\" INTO TABLE tl_2 CHARACTER SET 'utf8' FIELDS TERMINATED BY ';'  ;" \  



Danke euch!!

Content-Key: 367207

Url: https://administrator.de/contentid/367207

Ausgedruckt am: 29.03.2024 um 09:03 Uhr

Mitglied: SlainteMhath
SlainteMhath 07.03.2018 um 16:03:20 Uhr
Goto Top
Moin,

naja, wenn die CSV keine Zeilenumbrüche enthällt, wird das natürlich nix. Oder ist das eine Unix/Linux Datei die Du unter Windows importierst? Dann musst die CR in CR/LF umwandeln - Z.b. unter Linux mit de, Tool unix2dos - und dann erst importieren.

lg,
Slainte
Mitglied: Arano
Arano 07.03.2018 um 16:30:29 Uhr
Goto Top
Hi.

ich schließe mich da SlainteMhath an.
Handbuch
If you specify no FIELDS or LINES clause, the defaults are the same as if you had written this:

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'  
LINES TERMINATED BY '\n' STARTING BY ''  
Ich lese daraus das dass Trennzeichen für die Datensätze per Default der Zeilenumbruch ist.
Und weil im selben Handbuch als erster Satz folgendes steht:
The LOAD DATA INFILE statement reads rows from a text file into a table at a very high speed.
Enthält deine Datei auch nur einen Datensatz.


~Arano