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!

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;

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

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.


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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.