with the statement secure running priv outfile importar headers cannot mysql csv

the - MySQL "LOAD DATA INFILE" y faltan citas dobles



sql csv export (2)

Estoy tratando de cargar un CSV en MySQL usando la técnica LOAD DATA INFILE. Funciona bien, pero tengo un problema en el que algunas columnas usan comillas dobles y otras no.

Ejemplo:

something,123,something,"Bauer, Jack",123,something

Lo que sucede es que las comas dentro de las comillas rompen la importación, por lo que todos mis datos están al final. No estoy seguro de cómo obtener la importación para escapar de comas dentro de las comillas dobles.

mysql --user=<USER> --password=<PASS> -e "LOAD DATA INFILE ''<FILENAME>'' INTO TABLE <TABLENAME> FIELDS TERMINATED BY '','' LINES TERMINATED BY ''/r/n'' (col1, col2, col3, ...)" <DATABASE>


Debe ejecutar la instrucción LOAD DATA INFILE con la opción adicional

FIELDS OPTIONALLY ENCLOSED BY ''"''

Así, toda la declaración se convierte en

LOAD DATA INFILE ''<FILENAME>'' INTO TABLE <TABLENAME> FIELDS TERMINATED BY '','' OPTIONALLY ENCLOSED BY ''"'' LINES TERMINATED BY ''/r/n'' (col1, col2, col3, ...)

Para obtener más información, consulte el excelente Manual de referencia de MySQL, por ejemplo, para MySQL 5.1 GA.


Esperemos que hayas descubierto qué hacer ahora, pero si no lo has hecho, esto te ayudará.

He tenido problemas en Excel 2007 al exportar a un archivo CSV personalizado. Descubrí que puede cambiar el terminador de los campos aquí: http://www.tek-tips.com/viewthread.cfm?qid=1635599&page=15

Prefiero usar el tubo | carácter ya que es poco común, y un poco más flexible cuando se trata de medidas de "pies" en pulgadas.