2015-11-13 20 views
5

Ho un file CSV abbastanza considerevole che può cambiare da mese a mese e ha circa 450 punti dati per riga. Devo anche manipolare i dati prima di inserirli in una tabella permanente. Quindi il mio piano è di importarlo in una tabella temporanea, manipolarlo e quindi inserire i dati.Importa CSV nella tabella temporanea in MySQL

Tuttavia, non riesco a trovare alcuna informazione su se/come importare un CSV in una tabella temporanea (o, in alternativa, qualche modo di importare un CSV dinamico - la prima riga ha intestazioni di colonna nel CSV).

Ho provato a creare una tabella temporanea, con una colonna, e quindi a importare il CSV ma non sembra importarlo. Questo è quello che ho provato finora:

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; 

Come esempio del CSV, è è nel formato (tutti i punti dati sono numeri):

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

Beh, non è possibile creare una tabella senza colonne, quindi non c'era alternativa. Generalmente le tabelle temporali MySQL sono piuttosto dinamiche, cioè puoi eseguire una query e le colonne vengono aggiunte dinamicamente - ho pensato che si sarebbe potuto ottenere lo stesso durante l'importazione di un CSV. – Ashley

+1

no devi creare la tabella e avere esattamente lo stesso numero di colonne che vuoi importare – davejal

risposta

0

si potrebbe provare l'opzione di importazione a comando linea

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

/path/to/address.csv è il percorso completo del file CSV, assicurarsi di far corrispondere il nome l'indirizzo del file, in questo caso, con il nome della tabella, otherwish non funzionerà, l'estensione potrebbe essere qualcosa o nessuno affatto.

O

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

di riferimento: MySQL Documentation on LOAD DATA INFILE

Problemi correlati