una txt texto tablas tabla plano leer importar guardar fichero exportar datos cómo como cargar archivo mysql export header field

txt - mysql importar tablas



Cómo exportar/volcar una tabla MySql en un archivo de texto que incluye los nombres de campo(también llamados encabezados o nombres de columna) (5)

En el intérprete de MySQL, es muy fácil descargar una tabla en la pantalla junto con sus nombres de campo.

Parece que no hay una forma sencilla de exportar una tabla a un archivo de salida CSV o delimitado por tabuladores, incluidos sus encabezados de columna.

Estoy tratando de hacer esto utilizando solo SQL o la línea de comandos de Linux, sin escribir un programa en otro idioma.

Gracias


Al pasar la consulta al cliente de la línea de comandos, se genera una lista separada por tabulaciones con los nombres de las columnas como primera línea

$ echo "select * from surveys limit 5" | mysql -uroot -pGandalf surveys phone param1 param2 param3 param4 p0 p1 p2 p3 audio4 code time XXXXXXXXX 2008-07-02 11:17:23 XXXXXXXX SAT - - - - - ERROR 2008-07-02 12:18:32 XXXXXXXXX 2008-07-02 11:22:52 XXXXXXXX SAT - - - - - COLGADO 2008-07-02 12:04:29 XXXXXXXXX 2008-07-02 11:41:29 XXXXXXXX SAT - - - - - COLGADO 2008-07-02 12:07:22 XXXXXXXXX 2008-07-02 12:16:19 XXXXXXXX SAT 1 1 1 9 XXXXXXXXX_4.wav OK 2008-07-02 16:14:27 XXXXXXXXX 2008-07-02 08:21:25 XXXXXXXX SAT 1 1 1 1 XXXXXXXXX_4.wav OK 2008-07-02 12:29:40


Puedes hacer esto con el comando mysqldump . Eche un vistazo a las opciones --tab y --xml.


Este pequeño script debería hacerlo:

- 1. elija la tabla y el archivo de salida aquí / esta debería ser la única entrada

select ''mytable'' into @tableName; select ''c://temp/test.csv'' into @outputFile;

- 2. obtener los nombres de las columnas en un formato que se ajuste a la consulta

select group_concat(concat("''",column_name, "''")) into @columnNames from information_schema.columns where table_name=@tableName;

- 3. construir la consulta

SET @query = CONCAT( "select * from ((SELECT ",@columnNames,") UNION (SELECT * FROM `",@tableName,"`)) as a INTO OUTFILE ''", @outputFile, "''");

- 4. ejecutar la consulta

PREPARE stmt FROM @query; EXECUTE stmt;


Lo logré de esta manera:

echo "select * from table"| mysql database -B -udbuser -puser_passwd | sed s///t/,/g > query_output.csv

La opción -B de mysql separa las columnas por pestañas, que se convierten en comas usando sed. Tenga en cuenta que los encabezados también se generan.


He creado un procedimiento para automatizar la exportación de los contenidos de una gran cantidad de tablas al archivo .csv usando SELECT ... INTO OUTFILE . Consulte lo siguiente si necesita algo como esto

http://lifeboysays.wordpress.com/2012/06/23/mysql-how-to-export-data-to-csv-with-column-headers/ .

Utiliza el método descrito por cafe876, pero funcionará para una o toda una serie de tablas, además puede establecer el delimitador y el carácter de comillas que se utilizarán.