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!

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;

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

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.


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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.