2012-03-16 2 views
20

Ho un CSV che assomiglia a questo,l'importazione di un CSV in phpMyAdmin

candidate_id,show_on_site,first_name,surname,gender,DOB,showdob,Location,height,eyes,hair_colour,hair_length,accents,unions,training,url,visible,availability 
,26,urban talent,Strawberry,Shortcake,Female,11 Jan 1942,FALSE,Manchester,5'2,Brown,Black,Mid-length,Native Lancashire,Equity,Urban Talent TV & Drama Workshops,Strawberry-Shortcake---5.4.06.jpg,Yes,Yes 
,29,urban talent,Rainbow,Brite,Female,12 Oct 1970,FALSE,Manchester,5'7,Brown,Dark Brown,Long,"Native Manchester, others include - Cheshire, RP, Patois, Standard USA",Equity Member,"BA Acting Studies, Arden School of Theatre<br>Urban Talent TV & Drama Workshops",Rainbow Brite 1_1.jpg,Yes,Yes 
,31,urban talent,Webbigail,Vanderquack,Female,4 Jun 1947,FALSE,Manchester,5'0,Hazel,Blonde,Mid-length,"Native Manchester, others include - Liverpool, Cockney, Birmingham, West Country, Standard Scottish, Standard Welch, S Irish",,Manchester School of Acting<br>3 Years at David Johnson Acting Workshops,Webbigail Vanderquack web 1.jpg,Yes,Yes 
,33,urban talent,Smurfette,Smurf,Female,1 Jul 1979,FALSE,Manchester,5'2,Dark Brown,Dark Brown,Long,"Native Manchester, others include - Liverpool, RP, Lancashire, Birmingham, Cockney, Devon, Geordie, West Country, Glasgow, Edinburgh, South African, Standard & Southern US, Persian, Asian, Indian ~ good ear for accents",,"Manchester School of Acting, with Mark Hudson<br>North Cheshire Theatre College, with David Johnson<Oldham Theatre Workshop",Smurfette Smurf web 4.jpg,Yes,Yes 

E 'possibile inserire solo questi dati nelle colonne esistenti nel mio database, tutto quello che può sembrare ad esso inserirlo come nuova tabella che contiene quindi le colonne nome A, B, C, D, E ecc.

risposta

4

Utilizzando l'istruzione SQL LOAD DATA INFILE è possibile importare il file CSV, ma non è possibile aggiornare i dati. Tuttavia, c'è un trucco che puoi usare.

  • Creare un'altra tabella temporanea da utilizzare per l'importazione
  • carico su questa tabella dal CSC

    LOAD DATA LOCAL INFILE '/file.csv' 
    INTO TABLE temp_table 
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\n' 
    (field1, field2, field3); 
    
  • aggiornare la tabella vera unendo la tabella

    UPDATE maintable 
    INNER JOIN temp_table A USING (field1) 
    SET maintable.field1 = temp_table.field1 
    
35

In phpMyAdmin, fare clic sulla tabella, quindi cl tocca la scheda Importa nella parte superiore della pagina.

Sfogliare e aprire il file csv. Lascia il charset così com'è. Deseleziona l'importazione parziale a meno che tu non abbia un set di dati ENORME (o server lento). Il formato dovrebbe già aver selezionato "CSV" dopo aver selezionato il file, in caso contrario selezionarlo (non usare LOAD DATA). Se si desidera cancellare l'intera tabella prima dell'importazione, selezionare "Sostituisci dati tabella con file". Opzionalmente seleziona "Ignora le righe duplicate" se pensi di avere duplicati nel file CSV. Ora la parte importante, impostare i prossimi quattro campi a questi valori:

Fields terminated by: , 
Fields enclosed by: “ 
Fields escaped by: \ 
Lines terminated by: auto 

Attualmente questi abbinare i valori predefiniti ad eccezione di “Campi che terminano con”, che per default è un punto e virgola.

Ora fare clic sul pulsante Vai e dovrebbe essere eseguito correttamente.

+0

io non sono un fan della formulazione per la rimozione di righe duplicate. "Ignora le righe duplicate" può essere interpretato come se non facesse nulla per le righe duplicate (ad esempio ignorandole), il che risulterebbe nella loro aggiunta alla tabella. Grazie per la spiegazione su cosa fanno effettivamente. – Dennis

+0

funziona perfettamente ... grazie .. –

+0

ha dovuto cambiare 'Campi terminati da:,' a: 'Campi terminati da:; –

1

Ciò è dovuto all'id (l'incremento automatico è archiviato mancante). Se lo modifichi in un editor di testo aggiungendo una virgola per il campo ID, questo sarà risolto.

3

In phpMyAdmin v.4.6.5.2 c'è un'opzione checkbox "La prima riga del file contiene i nomi di colonna della tabella ....":

enter image description here

0

io non sono un fan di phpmyadmin. Io uso SQLyog invece. Devi solo selezionare la tabella in Object Browser (Ctrl + SHift + 1). Basta selezionare Tabella> Importa> Importa dati CSV usando Carica locale (Ctrl + Shift + M).

enter image description here