sviluppo-web-qa.it

Postgres equivalente a \ G di MySQL?

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 qualcosa\G" invece di "seleziona * da qualcosa;"

Grazie molto!

87
law

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;
100
Adam Ruth

In realtà, can abiliti 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
34
mage2k

Prendendo in prestito da questa risposta :

Puoi aggiungere \x\g\x alla query proprio 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.

19
Eben Geer

Da PostgreSQL 10, psql ha \gx Che è l'equivalente esatto di \G Di mysql

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\x Fa lo stesso, ma solo quando \x (= Visualizzazione estesa) è disattivato. Altrimenti fa il contrario! Al contrario \gx Viene sempre visualizzato con l'output espanso indipendentemente dall'attuale regime di \x.

9
Daniel Vérité

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.

3
David Pashley