Postgres äquivalent zu MySQL's \ G?

78

Weiß jemand, ob Postgres eine Möglichkeit hat, Abfrageergebnisse "hübsch" anzuzeigen, wie es MySQL tut, wenn eine Abfrage mit \ G in der Befehlszeile beendet wird? Zum Beispiel "select * from sometable \ G" im Gegensatz zu "select * from sometable";

Danke vielmals!

Gesetz
quelle

Antworten:

93

Ich kenne MySQL nicht gut genug, um zu wissen, was die Option \ G bewirkt, aber auf der Grundlage der Dokumentation sieht es so aus, als würde die Option psql \ x das tun, was Sie wollen.

Es ist jedoch ein Umschalten, also tun Sie es, bevor Sie die Abfrage absenden.

\x
select * from sometable;
Adam Ruth
quelle
34

Eigentlich Sie können \ G mysql Stil Formatierung auf einer Pro-Abfrage Basis in psql , indem Sie den folgenden in ~ / .psqlrc aktivieren:

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

Sie können dann Folgendes verwenden: G am Ende einer Abfrage im psql-Client wie \ G am Ende einer Abfrage im 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
mage2k
quelle
16

Aus dieser Antwort entlehnt :

Sie können \x\g\xan die Abfrage genau wie bei MySQLs anhängen \G. Zum Beispiel:

select * from users \x\g\x

Beachten Sie das Fehlen ;in der obigen Zeile, dies ist beabsichtigt.

Dies hat den Effekt, dass die erweiterte Anzeige aktiviert, die angegebene Abfrage ausgeführt und die erweiterte Anzeige in einer Anweisung deaktiviert wird.

Eben Geer
quelle
7

Seit PostgreSQL 10 psqlhat \gxdas genau das Äquivalent von MySQL\G

select * from sometable \gx

Dokumentation :

\ gx [Dateiname]
\ gx [| Befehl]
\ gx entspricht \ g, erzwingt jedoch den erweiterten Ausgabemodus für diese Abfrage. Siehe \ x.

Die Sequenz \x\g\xmacht dasselbe, aber nur wenn \x(= erweitertes Display) ausgeschaltet ist. Sonst macht es das Gegenteil! Im Gegensatz dazu \gxwird mit der erweiterten Ausgabe immer unabhängig vom aktuellen Regime von angezeigt \x.

Daniel Vérité
quelle
3

Sie können psql mit \ x in den erweiterten Modus versetzen, bevor Sie einen Befehl ausführen. Sie können dies jedoch nicht wie in mysql befehlsbezogen tun.

David Pashley
quelle