2012-03-16 25 views
20

Tengo un CSV que se parece a esto,importar un CSV en 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 

¿Es posible sólo tiene que insertar estos datos en las columnas existentes en mi base de datos, todo lo que puede parecer que se inserte como una nueva tabla que tiene columnas con los nombres A, B, C, D, E, etc.

Respuesta

4

Con la instrucción SQL LOAD DATA INFILE, puede importar el archivo CSV, pero no puede actualizar los datos. Sin embargo, hay un truco que puedes usar.

  • Crear otra tabla temporal que se utilizará para la importación
  • Cargar la máquina en esta tabla de la CSC

    LOAD DATA LOCAL INFILE '/file.csv' 
    INTO TABLE temp_table 
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\n' 
    (field1, field2, field3); 
    
  • actualizar la tabla de verdad de unirse a la mesa

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

En phpMyAdmin, haga clic en la tabla, y luego cl Haga clic en la pestaña Importar en la parte superior de la página.

Busque y abra el archivo csv. Deje el juego de caracteres tal como está. Desmarque la importación parcial a menos que tenga un conjunto de datos ENORME (o servidor lento). El formato ya debería haber seleccionado "CSV" después de seleccionar su archivo, si no, selecciónelo (no usando LOAD DATA). Si desea borrar toda la tabla antes de importar, marque "Reemplazar datos de tabla con archivo". Opcionalmente marque "Ignorar filas duplicadas" si cree que tiene duplicados en el archivo CSV. Ahora la parte importante, establecer los siguientes cuatro campos a estos valores:

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

Actualmente mismos coinciden con los valores predeterminados excepto los de “campos terminados por”, que por defecto es un punto y coma.

Ahora haga clic en el botón Ir y se ejecutará correctamente.

+0

No soy un fan de la redacción para eliminar las filas duplicadas. "Ignorar filas duplicadas" puede interpretarse como que no se hace nada con las filas duplicadas (es decir, ignorándolas), lo que da como resultado que se agreguen a su tabla. Gracias por la explicación de lo que realmente hacen. – Dennis

+0

funcionan perfectamente ... gracias .. –

+0

tuvo que cambiar 'Campos terminados por:,' a: 'Campos terminados por:;' –

1

Esto ocurre debido a la identificación (falta el incremento automático). Si lo edita en un editor de texto agregando una coma para el campo ID esto se resolverá.

3

En phpMyAdmin v.4.6.5.2 hay una opción de casilla de verificación "La primera línea del archivo contiene los nombres de columna de la tabla ....":

enter image description here

0

yo no soy una fan de phpmyadmin. Yo uso SQLyog en su lugar. Solo tiene que seleccionar la Tabla en Object Browser (Ctrl + SHift + 1). Simplemente seleccione Tabla> Importar> Importar datos CSV usando Cargar local (Ctrl + Shift + M).

enter image description here

Cuestiones relacionadas