Pregunta: He usado el comando SPOOL en Oracle SQL para almacenar los resultados de la consulta en un archivo y, cuando todo está listo, se puede desactivar el spool. ¿Cómo puedo lograr lo mismo en MySQL? Por ejemplo, en MySQL, la consulta 'MOSTRAR LISTA DE PROCESOS COMPLETOS' enumerará todos los procesos de MySQL que se están ejecutando actualmente en la pantalla (y si es una lista larga, verá solo las últimas filas en la pantalla). Me gustaría saber si hay un comando tipo SPOOL en MySQL para almacenar los resultados de la consulta en un archivo. o al menos debería poder canalizar ( | ) la salida al comando de shell como "más".
En ORACLE SQL:
Para almacenar la salida del resultado de la consulta en un archivo, uso spool.
sqlplus> SPOOL /tmp/output.txt sqlplus> select * from UserTable; sqlplus> SPOOL off;
Respuesta:Para MySQL
Método 1:
No hay comando SPOOL en MySQL, pero puede usar el comando alternativo tee para activar el registro y nota para desactivar el registro.
mysql> tee /tmp/test.txt Logging to file '/tmp/test.txt' mysql> show full processlist; +------+-----------+-----------+--------+---------+------+-------+-----------------------+ | Id | User | Host | db | Command | Time | State | Info | +------+-----------+-----------+--------+---------+------+-------+-----------------------+ | 7478 | sample | host.name| dbname | Sleep | 0 | | NULL | | 7479 | sample | host.name | NULL | Query | 0 | NULL | show full processlist | +------+-----------+-----------+--------+---------+------+-------+-----------------------+ 2 rows in set (0.00 sec) mysql> notee Outfile disabled.
Ahora, puede consultar el archivo de registro /tmp/text.txt.
Método 2: Puede ejecutar la consulta de MySQL desde el indicador de shell y canalizar la salida a más.
$ mysql -u root -p -e "show full processlist" | more
Método 3: Puede ejecutar la consulta desde el indicador de shell y redirigir la salida a un archivo como se muestra a continuación:
$ mysql -u root -p -e "show full processlist" | tee /tmp/out.txt
(o)
$ mysql -u root -p -e "show full processlist" > /tmp/out.txt
SELECT INTO OUTFILE usado para consultas SELECT:
Si está ejecutando una consulta de selección, entonces puede usar SELECT INTO OUTFILE como se muestra a continuación:
mysql> select * into outfile '/tmp/out.txt' from user_table;
Espero que ayude.