Wie lässt sich eine CSV-Datei direkt mit MySQL-Mitteln importieren?

MySQL bietet für einen CSV-Import den relativ gut konfigurierbaren Befehl LOAD DATA INFILE.

Beispiel

Eine CSV-Datei "benutzer.csv" mit Benutzern mit folgendem Aufbau:

"Vorname", "Nachname", "Straße", "PLZ", "Ort"
"Max", "Mustermann", "Musterstraße 47", "50226", "Frechen"
"Heinz", "Müller", "Müllerstraße 42", "50226", "Frechen - Königsdorf"

wird mit folgender LOAD DATA INFILE Anweisung in die Tabelle users importiert

LOAD DATA INFILE '/pfad/zur/date/benutzer.csv' INTO TABLE users
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
IGNORE 1 LINES
(name,surname,street,zipCode,city);
  • LOAD DATA INFILE [dateiname] INTO TABLE [tabellenname] - Gibt den Pfad zur CSV-Datei und Tabelle an.
  • FIELDS TERMINATED BY '[Zeichenkette]' - Gibt an, mit welchem Zeichen die einzelnen Spalten getrennt sind.
  • ENCLOSED BY 'Zeichen' - Gibt das Zeichen an, durch das die Felder eingeschlossen sind.
  • IGNORE [Anzahl] LINES - Gibt die Anzahl der zu ignorierenden Zeilen an. Falls die erste Zeile eine Überschrift enthält, sollte die Anzahl 1 lauten.
  • Die letzte Zeile enthält die konkreten Spalten. Falls die CSV-Datei alle Spalten in der exakten Reihenfolge enthält, wie sie auch in Tabelle vorkommen, kann diese Zeile weggelassen werden.
blogroll
tags