Vraag Postgres equivalent aan MySQL's \ G?


Weet iemand of Postgres een manier heeft om queryresultaten "mooi" weer te geven, zoals hoe MySQL doet wanneer een vraag eindigt met \ G op de opdrachtregel? Bijvoorbeeld: "select * from sometable \ G" in tegenstelling tot "select * from sometable;"

Erg bedankt!


69
2017-07-01 21:54


oorsprong




antwoorden:


Ik ben niet bekend genoeg met MySQL om te weten wat de optie \ G doet, maar op basis van de documentatie lijkt het erop dat de optie psql \ x doet wat je wilt.

Het is een toggle, dus u doet het voordat u de query indient.

\x
select * from sometable;

83
2017-07-01 22:24





Eigenlijk, jij kan schakel \ G mysql-stijlopmaak op per gebruiker in psql in door het volgende in ~ / .psqlrc te plaatsen:

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

U kunt vervolgens: G aan het einde van een query in de psql-client gebruiken zoals u dat zou doen \ G aan het einde van een query in de mysql-client:

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

29
2017-07-07 18:54





Lenen van dit antwoord:

U kunt toevoegen \x\g\x naar de vraag, net zoals u zou doen met MySQL's \G. Bijvoorbeeld:

select * from users \x\g\x

Let op het gebrek aan ; in de bovenstaande regel is dit opzettelijk.

Dit heeft het effect van het inschakelen van uitgebreide weergave, het uitvoeren van de uitgedrukte query en het uitschakelen van uitgebreide weergave, alles in één instructie.


12
2018-01-20 16:41





U kunt psql in de uitgebreide modus schakelen met \ x voordat u een opdracht uitvoert, maar u kunt dit niet doen op basis van een opdracht op commando, zoals u kunt in mysql.


3
2017-07-01 22:21





Sinds PostgreSQL 10, psql heeft \gx dat is het exacte equivalent van mysql's \G

select * from sometable \gx

Documentatie:

\ gx [bestandsnaam]
     \ gx [| opdracht]
       \ gx is gelijk aan \ g, maar forceert de uitgebreide uitvoermodus voor deze query.       Zie \ x.

De reeks \x\g\x doet hetzelfde, maar alleen wanneer \x (= uitgebreid scherm) is uitgeschakeld. Anders doet het het tegenovergestelde! Daarentegen \gx wordt altijd weergegeven met de uitgebreide uitvoer onafhankelijk van het huidige regime van \x.


1
2017-07-18 13:29