2011-01-14 12 views
9

Me gusta el resultado de la tabla que el programa cliente mysql produce en modo interactivo, pero si trato de ejecutar una secuencia de comandos SQL como esto:¿Cómo se obtiene una salida con formato de tabla de MySQL en modo no interactivo?

mysql -uroot mydb < myscript.sql 

sólo obtener una salida separados por tabuladores.

mysql -uroot mydb -e 'select * from mytable' 

produce la salida en el formato de tabla deseado, sin embargo.

¿Cómo puedo obtener el primer comando para producir una salida con formato de tabla? No quiero salida de HTML, pero la salida del carácter del terminal con columnas alineadas y encabezados.

+0

posible duplicado de menos '-S' [MYSQL difiere en salida desde el guión] (http: //stackoverflow.com/questions/13790956/mysql-differs-in-output-from-script) –

+0

Gracias por publicar, necesitaba lo mismo. También uso el término modo "no interactivo" para esto, pero no sé si es un término ampliamente utilizado. Me pregunto si esta forma de ejecución (es decir, directamente desde un shell) tiene otros nombres, ¿modo por lotes? –

Respuesta

7

Agregue la opción -t a mysql (tabla).

mysql -t -uroot mydb < myscript.sql 

    mysql -t -uroot mydb -e 'select * from mytable' 
4

Uso \ P opción menos -S antes de ejecutar la consulta

mysql> \P less -S 

PAGINADOR establece en

+2

La respuesta en tu blog es muy corta; básicamente has incluido todo aquí, por lo que vincularlo a tu blog también parece spam. Además, no reveló que es su blog al que se ha vinculado. He eliminado el enlace; Lea las preguntas frecuentes sobre autopromoción antes de publicar enlaces adicionales a su blog. Puedes poner el enlace de tu blog en tu perfil aquí; Sin embargo, Stack Overflow no pretende ser publicidad de tu blog a través de respuestas. –

+0

Me parece bien. Gracias por la aclaración –

+0

Eres muy bienvenido :) –

Cuestiones relacionadas