Postgres equivalente ao \ G do MySQL?

78

Alguém sabe se o Postgres tem uma maneira de exibir os resultados da consulta "lindamente", como o MySQL faz ao terminar uma consulta com \ G na linha de comando? Por exemplo, "selecione * de algo \ G" em vez de "selecione * de algo;"

Muito Obrigado!

lei
fonte

Respostas:

93

Eu não estou familiarizado o suficiente com o MySQL para saber o que a opção \ G faz, mas com base na documentação, parece que a opção psql \ x pode fazer o que você deseja.

É uma alternância, no entanto, você faz isso antes de enviar a consulta.

\x
select * from sometable;
Adam Ruth
fonte
34

Na verdade, você pode habilitar a formatação no estilo \ G mysql por consulta no psql, colocando o seguinte em ~ / .psqlrc:

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

Você pode então usar: G no final de uma consulta no cliente psql da mesma maneira que faria \ G no final de uma consulta no 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
fonte
16

Tomando emprestado desta resposta :

Você pode anexar \x\g\xà consulta exatamente como faria com o MySQL \G. Por exemplo:

select * from users \x\g\x

Observe a falta de ;na linha acima, isso é intencional.

Isso tem o efeito de ativar a exibição expandida, executar a consulta expressa e desativar a exibição expandida, tudo em uma instrução.

Eben Geer
fonte
7

Desde o PostgreSQL 10, psqltem \gxqual é o equivalente exato do mysql\G

select * from sometable \gx

Documentação :

\ gx [nome do arquivo]
\ gx [| comando]
\ gx é equivalente a \ g, mas força o modo de saída expandida para esta consulta. Veja \ x.

A sequência \x\g\xfaz o mesmo, mas apenas quando \x(= exibição expandida) está desativada. Caso contrário, faz o contrário! Por outro lado, \gxsempre é exibido com a saída expandida independentemente do regime atual de \x.

Daniel Vérité
fonte
3

Você pode alternar o psql para o modo estendido com \ x antes de executar um comando, mas não pode fazê-lo por comando, como no mysql.

David Pashley
fonte