Qual è il modo più semplice per importare una nuova tabella in MySQL v5 da CSV?

StackOverflow https://stackoverflow.com/questions/156994

  •  03-07-2019
  •  | 
  •  

Domanda

Sto eseguendo MySQL 5 su un server Linux sulla mia rete locale. Esecuzione di Windows XP per il mio desktop. Ho dato un'occhiata agli Strumenti della GUI di MySQL ma non credo che aiutino . Non riesco a installare apache sul server remoto & amp; usa qualcosa come PHPmyAdmin.

È stato utile?

Soluzione

Uso SQLyog sul mio sistema Windows che ha una Community Edition gratuita e ha un'opzione da cui importare CSV.

Non ho mai usato questa opzione da sola, quindi non posso dirti quanto sia buona. Tuttavia, SQLyog è stato ottimo per tutte le altre cose per cui l'ho usato.

Altri suggerimenti

Dalla shell MySQL o dal browser delle query ...

Se il CSV non ha intestazione:

LOAD DATA INFILE 'mycsvfile.csv' INTO TABLE mytable;

Se il CSV ha un'intestazione:

LOAD DATA INFILE 'mycsvfile.csv' INTO TABLE mytable IGNORE 1 LINES;

Vorrei utilizzare un editor di fogli di calcolo per creare una serie di istruzioni SQL. Metti una nuova colonna all'inizio e aggiungi inserisci in valori tablename ('. Aggiungi altre colonne per separare i dati con codice come ' ',' . Termina con ''); . Utilizzare la funzione di riempimento automatico per trascinare queste celle verso il basso su tutte le righe necessarie. Copia l'intero foglio in un editor di testo semplice e rimuovi le schede in eccesso, lasciandoti con un semplice set di istruzioni insert.

Questa è una soluzione che posso usare per qualsiasi sistema di database e qualsiasi formato di file di foglio elettronico. Inoltre, è facile popolare il foglio di calcolo da fonti come altri database o copiare e incollare da una pagina Web. È anche abbastanza veloce e disponibile da qualsiasi macchina desktop, usando Excel, OpenOffice o Google Docs.

Vedi il mio foglio di calcolo di esempio in Excel e OpenOffice versioni.

L'ho appena fatto usando LOAD DATA INFILE ma vale la pena notare che non è così semplice come nell'esempio di Gareth (Kai ha ragione a guardare la documentazione ). Per importare correttamente i valori separati da virgola, ho usato questo:

LOAD DATA LOCAL INFILE 'mycsvfile.csv' INTO TABLE mytable 
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

Questo presuppone un file CSV con virgolette attorno a ciascun campo e una singola riga di intestazione nella parte superiore. (Probabilmente non è necessario il LINEE TERMINATE DA poiché dovrebbe essere l'impostazione predefinita, ma è una buona pratica essere espliciti.)

L'applicazione Toad fa miracoli ed è freeware. Se hai un file CSV corretto, creerà la tabella e importerà tutti i dati per te.

Scrivi un semplice script Python che analizza il CSV e lo inserisce nella tabella.

Guarda i moduli csv e mysqldb .

Se non ti dispiace usare un po 'di software commerciale, Navicat ( http://mysql.navicat.com / ) è un software molto utile ed è disponibile per Mac, Windows, Linux. Lo uso regolarmente per importare un file CSV di grandi dimensioni in un database.

Toad for MySQL lo farà bene, con un notevole controllo sull'importazione (abbinando selettivamente le colonne per esempio) e in modo duraturo è gratuito.

Ho anche usato SQLYog, ma devi avere la versione commerciale per questo poiché l'importazione dal file non è disponibile nell'edizione della comunità.

Toad è un eccellente software che viene fornito in versioni per tutti i principali database e in passato ho usato sia le versioni MSSQL che Oracle. Consigliato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top