• Categoría: MySQL
  • Visto: 14734

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

MySQL proporciona un mecanismo sencillo para escribir los resultados de una instrucción de selección (SELECT) en un archivo de texto en el servidor. Usando las opciones extendidas de la nomenclatura INTO OUTFILE, es posible crear archivos de salida con valores separados por comas (CSV), que posteriormente podrás importar en una aplicación de tipo hoja de cálculo como OpenOffice, Excel o cualquier otra aplicación que acepte datos en formato CSV.

 

Sintaxis


SELECT Nombre_Columna
FROM Nombre_Tabla
INTO OUTFILE 'nombrefichero.txt'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'


En esta consulta de ejemplo

 


SELECT num_factura, fecha_factura, item, cantidad FROM facturas;

 

La consulta devuelve cuatro columnas de datos, los resultados pueden ser escritos en el archivo facturas.txt en el directorio temp utilizando la siguiente consulta:

 


SELECT num_factura, fecha_factura, item, cantidad FROM facturas;
INTO OUTFILE 'c:/temp/facturas.txt'


 

Toma en cuenta que el formato de la ruta en Windows para el archivo de salida será "c:/temp/facturas.txt", en cambio para Linux será "/temp/facturas.txt"

 

En este otro ejemplo, se creará un archivo de tipo CSV separado por tabuladores y cada fila en una línea distinta. Para modificar este comportamiento, es posible añadir modificadores de la consulta:

 


SELECT order_id,product_name,qty FROM orders
INTO OUTFILE 'c:/temp/facturas.txt'
FIELDS TERMINATED BY '\t'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'


 

Otro ejemplo, el valor de cada columna incluirá entre "comillas dobles", los campos estarán separados por comas y cada fila se escribirá en una nueva línea.

 


SELECT order_id,product_name,qty FROM orders
INTO OUTFILE 'c:/temp/facturas.txt'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'


 

Ten en cuenta que no debe existir el archivo de salida sino obtendras el error de MySQL "ERROR 1086 (HY000): File 'c:/temp/facturas.csv' already exists" y que el usuario MySQL que este ejecutando la query tenga los permisos de escritura en el directorio donde MySQL está intentando escribir en el archivo.

 

MySQL