Postgres équivalent à MySQL \ G?

78

Est-ce que quelqu'un sait si Postgres dispose d'un moyen d'afficher les résultats de la requête "joliment", comme le fait MySQL pour mettre fin à une requête avec \ G sur la ligne de commande? Par exemple, "select * from sometable \ G" par opposition à "select * from sometable;"

Merci beaucoup!

loi
la source

Réponses:

93

Je ne connais pas suffisamment MySQL pour savoir ce que fait l'option \ G, mais d'après la documentation, il semble que l'option psql \ x puisse faire ce que vous voulez.

C'est une bascule, cependant, vous devez donc le faire avant de soumettre la requête.

\x
select * from sometable;
Adam Ruth
la source
34

En fait, vous pouvez activer la mise en forme de style \ mysql \ psql par requête dans psql en mettant ce qui suit dans ~ / .psqlrc:

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

Vous pouvez ensuite utiliser: G à la fin d’une requête dans le client psql de la même manière que vous le feriez \ G à la fin d’une requête dans le 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
mage2k
la source
16

Empruntant à cette réponse :

Vous pouvez ajouter \x\g\xà la requête comme vous le feriez avec MySQL \G. Par exemple:

select * from users \x\g\x

Notez le manque de ;dans la ligne ci-dessus, c'est intentionnel.

Cela a pour effet d'activer l'affichage étendu, d'exécuter la requête exprimée et de désactiver l'affichage étendu, le tout dans une seule instruction.

Eben Geer
la source
7

Depuis PostgreSQL 10, psqla \gxqui est l'équivalent exact de MySQL de\G

select * from sometable \gx

Documentation :

\ gx [nom du fichier]
\ gx [| commande]
\ gx est équivalent à \ g, mais force le mode de sortie étendu pour cette requête. Voir \ x.

La séquence \x\g\xfait la même chose, mais uniquement lorsque \x(= affichage étendu) est désactivé. Sinon c'est le contraire! En revanche, \gxaffiche toujours avec la sortie étendue indépendamment du régime actuel de \x.

Daniel Vérité
la source
3

Vous pouvez basculer psql en mode étendu avec \ x avant d'exécuter une commande, mais vous ne pouvez pas le faire commande par commande comme vous le pouvez dans mysql.

David Pashley
la source