2015-11-13 6 views
5

Ich habe eine ziemlich große CSV-Datei, die von Monat zu Monat wechseln kann, und hat etwa 450 Datenpunkte pro Zeile. Ich muss auch die Daten manipulieren, bevor ich sie in eine permanente Tabelle einfüge. Mein Plan ist also, es in eine temporäre Tabelle zu importieren, zu manipulieren und dann die Daten einzufügen.Importieren CSV In To Temporäre Tabelle in MySQL

Ich kann jedoch keine Informationen darüber finden, ob und wie Sie eine CSV-Datei in eine temporäre Tabelle importieren (oder eine andere Möglichkeit zum Importieren einer dynamischen CSV - die erste Zeile enthält Spaltenüberschriften in der CSV).

Ich habe versucht, eine temporäre Tabelle mit einer Spalte zu erstellen und dann die CSV-Datei zu importieren, aber sie scheint sie nicht zu importieren. Dies ist, was ich versuchte, so weit:

DROP TEMPORARY TABLE IF EXISTS tmp_import; 

CREATE TEMPORARY TABLE tmp_import (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY); 

LOAD DATA LOCAL INFILE '/import.csv' INTO TABLE tmp_import 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES; 

Als Beispiel für die CSV, es ist im Format (alle Datenpunkte sind Zahlen):

500,400,101,93,005,22 
4,954,23434,123423432,44 
+0

Well Sie eine Tabelle ohne Spalten nicht erstellen können, so dass es keine Alternative. Im Allgemeinen sind MySQL-Temp-Tabellen sehr dynamisch, d. H. Sie können eine Abfrage ausführen, und die Spalten werden dynamisch hinzugefügt. Ich gehe davon aus, dass dies auch beim Import einer CSV-Datei möglich ist. – Ashley

+1

Nein, Sie müssen die Tabelle erstellen und haben genau die gleiche Anzahl an Spalten, die Sie importieren möchten – davejal

Antwort

0

Sie die Importoption auf Befehl könnten versuchen,

Linie
mysqlimport --ignore-lines=1 --fields-terminated-by=, --verbose --local 
    -u [user] -p [database] /path/to/address.csv 

/path/to/address.csv ist der vollständige Pfad zur CSV-Datei, sollten sie in diesem Fall den Namen der Datei-Adresse übereinstimmen, mit dem Namen der Tabelle, other es nicht funktionieren wird, die Verlängerung könnte sei alles oder nichts.

Oder

LOAD DATA LOCAL INFILE 'File.csv' 
INTO TABLE tableName 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 

Referenz: MySQL Documentation on LOAD DATA INFILE

Verwandte Themen