Frage Postgres entspricht MySQL \ G?


Weiß jemand, ob Postgres eine Möglichkeit hat, Abfrageergebnisse "hübsch" anzuzeigen, wie MySQL es macht, wenn eine Abfrage mit \ G auf der Kommandozeile endet? Zum Beispiel, "Wählen Sie * aus etwas \ G" im Gegensatz zu "Wählen Sie * aus etwas;"

Danke vielmals!


69
2017-07-01 21:54


Ursprung




Antworten:


Ich bin mit MySQL nicht genug vertraut, um zu wissen, was die Option \ G tut, aber basierend auf der Dokumentation sieht es so aus, als würde die Option psql \ x das tun, was Sie wollen.

Es ist jedoch ein Toggle, also tun Sie es, bevor Sie die Abfrage senden.

\x
select * from sometable;

83
2017-07-01 22:24





Eigentlich, du können Aktivieren Sie \ G mysql style-Formatierung pro Abfrage in psql, indem Sie Folgendes in ~ / .psqlrc einfügen:

\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, das gleiche wie 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

29
2017-07-07 18:54





Ausleihen von diese Antwort:

Sie können anhängen \x\g\x genauso wie bei MySQL \G. Zum Beispiel:

select * from users \x\g\x

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

Dies hat den Effekt, die erweiterte Anzeige zu aktivieren, die ausgedrückte Abfrage auszuführen und die erweiterte Anzeige in einer Anweisung zu deaktivieren.


12
2018-01-20 16:41





Sie können psql mit \ x in den erweiterten Modus umschalten, bevor Sie einen Befehl ausführen, aber Sie können es nicht Befehl für Befehl ausführen, wie Sie es in mysql können.


3
2017-07-01 22:21





Seit PostgreSQL 10, psql hat \gx Das ist das genaue Ä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\x macht dasselbe, aber nur wenn \x (= erweiterte Anzeige) ist aus. Ansonsten tut es das Gegenteil! Im Gegensatz \gx erscheint immer mit dem erweiterten Ausgang unabhängig vom aktuellen Regime von \x.


1
2017-07-18 13:29