Descubrí una forma de tener que ingresar esos nombres manualmente siempre que ejecute MySQL 5 o superior. Aquí está, escrito como una escritura del golpe para que se ejecuta en una línea de comandos UNIX:
DBNAME=<database_name>
TABLE=<table_name>
FNAME=/path/to/output/dir/$(date +%Y.%m.%d)-$DBNAME.csv
#(1)creates empty file and sets up column names using the information_schema
mysql -u <username> -p<password> $DBNAME -B -e "SELECT COLUMN_NAME FROM information_schema.COLUMNS C WHERE table_name = '$TABLE';" | awk '{print $1}' | grep -iv ^COLUMN_NAME$ | sed 's/^/"/g;s/$/"/g' | tr '\n' ',' > $FNAME
#(2)appends newline to mark beginning of data vs. column titles
echo "" >> $FNAME
#(3)dumps data from DB into /var/mysql/tempfile.csv
mysql -u <username> -p<password> $DBNAME -B -e "SELECT * INTO OUTFILE '/var/mysql/tempfile.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' FROM $TABLE;"
#(4)merges data file and file w/ column names
cat /var/mysql/tempfile.csv >> $FNAME
#(5)deletes tempfile
rm -rf /var/mysql/tempfile.csv
Aunque no es la solución más elegante, estoy seguro de que se puede comprimir en una sola línea por alguien que conoce SQL y/o golpear un poco mejor que yo ...
lo que hace es:
- utiliza esquema de información de MySQL para crear un vacío CSV encabezados de columna w/
- añade un nuevo salto de línea extra para que desembocan por lo CSV sus datos comenzarán a aparecer una nueva línea
- utiliza un estándar bastante "SELECT * INTO OUTFILE ..." consulta para crear un archivo CSV completo de datos
- anexa el archivo de datos en el archivo w/encabezados de columna
- borra los datos (temporal) archivo
¡Buena suerte, y si la limpia, publique sus resultados!
mira esto (que es una solución): [archivo CSV exportación de MySQL con encabezamientos en primera fila] (http://homepage.mac.com/kelleherk/iblog/C711669388/E20060511141025/index.html) –