Postgres equivalente a MySQL's \ G?

78

¿Alguien sabe si Postgres tiene una manera de mostrar los resultados de la consulta "bastante bien", como lo hace MySQL al finalizar una consulta con \ G en la línea de comandos? Por ejemplo, "select * from sometable \ G" en lugar de "select * from sometable;"

¡Muchas gracias!

ley
fuente

Respuestas:

93

No estoy lo suficientemente familiarizado con MySQL para saber qué hace la opción \ G, pero según la documentación parece que la opción psql \ x podría hacer lo que desea.

Sin embargo, es una alternancia, por lo que debe hacerlo antes de enviar la consulta.

\x
select * from sometable;
Adam Ruth
fuente
34

En realidad, puede habilitar el formato de estilo \ G mysql por consulta en psql poniendo lo siguiente en ~ / .psqlrc:

\set G '\\set QUIET 1\\x\\g\\x\\set QUIET 0'

Luego puede usar: G al final de una consulta en el cliente psql igual que lo haría con \ G al final de una consulta en el cliente mysql:

pagila=# select * from foo limit 1;
 id | uniq | val |       val_ts        
----+------+-----+---------------------
  1 |    1 |   3 | 2007-07-03 00:00:00
(1 row)

Time: 11.481 ms
pagila=# select * from foo limit 1 :G
-[ RECORD 1 ]---------------
id     | 1
uniq   | 1
val    | 3
val_ts | 2007-07-03 00:00:00
mage2k
fuente
16

Tomando prestado de esta respuesta :

Puede agregar \x\g\xa la consulta tal como lo haría con MySQL \G. Por ejemplo:

select * from users \x\g\x

Tenga en cuenta la falta de ;en la línea anterior, esto es intencional.

Esto tiene el efecto de habilitar la visualización expandida, ejecutar la consulta expresada y deshabilitar la visualización expandida, todo en una sola declaración.

Eben Geer
fuente
7

Desde PostgreSQL 10, psqltiene \gxcuál es el equivalente exacto de mysql\G

select * from sometable \gx

Documentación :

\ gx [nombre de archivo]
\ gx [| comando]
\ gx es equivalente a \ g, pero fuerza el modo de salida expandido para esta consulta. Ver \ x.

La secuencia \x\g\xhace lo mismo, pero solo cuando \x(= pantalla expandida) está desactivada. De lo contrario, hace lo contrario. Por el contrario, \gxsiempre se muestra con la salida expandida independientemente del régimen actual de \x.

Daniel Vérité
fuente
3

Puede alternar psql en modo extendido con \ x antes de ejecutar un comando, pero no puede hacerlo comando por comando como puede hacerlo en mysql.

David Pashley
fuente