Der Import einer CSV-Datei in eine bestehende Tabelle einer MySQL-Datenbank lässt sich recht einfach bewerkstelligen:
1 2 3 4 5 |
LOAD DATA INFILE 'E:/data.csv' INTO TABLE test_table FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' IGNORE 1 ROWS; |
In PhpMyAdmin kann man dies auch ohne einen SQL-Befehl durchführen, da es ein entsprechendes Formular unter „Importieren“ gibt, wenn man dort das Format auf CSV umstellt. Aber wenn man z. B. aus einem Script heraus Daten regelmäßig in eine Tabelle einliest hilft einem das Formular in PhpMyAdmin nicht weiter.
Bei „Fields terminated by“ gibt man das Zeichen an, welches als Trenner der Spaltenwerte benutzt wird.
Wann eine neue Zeile anfängt, gibt man bei „Lines terminated by“ an. Theoretisch sind hier also auch andere Zeichen als das Semikolon oder der Zeilenumbruch möglich. Man muss immer nur bedenken, dass die Zeichen nicht innerhalb der in die Datenbank zu übernehmenden Werte vorkommen dürfen.
Sofern in der ersten Zeile der CSV-Datei noch Überschriften stehen oder man erst ab einer bestimmten Zeile die Werte übernehmen will, so muss man mit „Ignore 1 rows“ noch angeben wieviele Zeilen übersprungen werden sollen.