it-swarm-eu.dev

Postgres équivalent à \ G? De MySQL

Est-ce que quelqu'un sait si Postgres a un moyen d'afficher "joliment" les résultats de la requête, comme le fait MySQL lors de la fin d'une requête avec\G sur la ligne de commande? Par exemple, "sélectionnez * à partir de quelque chose\G" par opposition à "sélectionnez * à partir de quelque chose;"

Merci beaucoup!

87
law

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

En fait, vous pouvez activer la mise en forme du style\G mysql pour chaque 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
34
mage2k

Emprunter de 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.

19
Eben Geer

Depuis PostgreSQL 10, psql a \gx qui est l'équivalent exact du mysql \G

select * from sometable \gx

Documentation :

\ gx [nom de 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\x fait de même, mais uniquement lorsque \x (= affichage étendu) est désactivé. Sinon ça fait le contraire! Par contre \gx s'affiche toujours avec la sortie étendue indépendamment du régime actuel de \x.

9
Daniel Vérité

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 pouvez le faire dans mysql.

3
David Pashley