Postgres equivalente a \ G di MySQL?


78

Qualcuno sa se Postgres ha un modo per visualizzare i risultati delle query "in modo grazioso", come fa MySQL quando termina una query con \ G sulla riga di comando? Ad esempio, "seleziona * da sometable \ G" invece di "seleziona * da sometable;"

Grazie molto!

Risposte:


93

Non ho abbastanza familiarità con MySQL per sapere cosa fa l'opzione \ G, ma in base alla documentazione sembra che l'opzione psql \ x possa fare quello che vuoi.

È un interruttore, tuttavia, quindi lo fai prima di inviare la query.

\x
select * from sometable;

34

In realtà, puoi abilitare la formattazione di stile \ G mysql in base alle query in psql inserendo quanto segue in ~ / .psqlrc:

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

Puoi quindi usare: G alla fine di una query nel client psql come faresti \ G alla fine di una query nel client 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

16

Prendendo in prestito da questa risposta :

Puoi aggiungere \x\g\xalla query come faresti con MySQL \G. Per esempio:

select * from users \x\g\x

Nota la mancanza di ;nella riga sopra, questo è intenzionale.

Ciò ha l'effetto di abilitare la visualizzazione estesa, l'esecuzione della query espressa e la disabilitazione della visualizzazione estesa, il tutto in un'unica istruzione.


7

Da PostgreSQL 10, psqlha \gxqual è esattamente l'equivalente di mysql\G

select * from sometable \gx

Documentazione :

\ gx [nome file]
\ gx [| comando]
\ gx è equivalente a \ g, ma impone la modalità di output estesa per questa query. Vedi \ x.

La sequenza \x\g\xfa lo stesso, ma solo quando \x(= visualizzazione estesa) è disattivato. Altrimenti fa il contrario! Al contrario, \gxviene sempre visualizzato con l'output espanso indipendentemente dall'attuale regime di \x.


3

Puoi attivare psql in modalità estesa con \ x prima di eseguire un comando, ma non puoi farlo su un comando per comando come puoi fare in mysql.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.