Postgres równoważny MySQL's \ G?

78

Czy ktoś wie, czy Postgres ma sposób „ładnie” wyświetlać wyniki zapytania, tak jak MySQL po zakończeniu zapytania z \ G w wierszu poleceń? Na przykład „wybierz * z czegoś \ G” zamiast „wybierz * z czegoś”;

Wielkie dzięki!

prawo
źródło

Odpowiedzi:

93

Nie znam wystarczająco MySQL, aby wiedzieć, co robi opcja \ G, ale na podstawie dokumentacji wygląda na to, że opcja psql \ x może zrobić to, co chcesz.

Jest to jednak przełącznik, więc robisz to przed przesłaniem zapytania.

\x
select * from sometable;
Adam Ruth
źródło
34

W rzeczywistości możesz włączyć formatowanie stylu \ G mysql dla poszczególnych zapytań w psql, umieszczając następujące opcje w ~ / .psqlrc:

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

Następnie możesz użyć: G na końcu zapytania w kliencie psql, tak jak \ G na końcu zapytania w kliencie 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
mag2k
źródło
16

Pożyczanie na podstawie tej odpowiedzi :

Możesz dołączyć \x\g\xdo zapytania tak jak w MySQL \G. Na przykład:

select * from users \x\g\x

Zwróć uwagę na brak ;powyższej linii, jest to celowe.

Powoduje to włączenie rozszerzonego wyświetlania, uruchomienie wyrażonego zapytania i wyłączenie rozszerzonego wyświetlania, wszystko w jednej instrukcji.

Eben Geer
źródło
7

Od PostgreSQL 10 psqlma \gxdokładny odpowiednik mysql\G

select * from sometable \gx

Dokumentacja :

\ gx [nazwa pliku]
\ gx [| polecenie]
\ gx jest równoważne \ g, ale wymusza tryb rozszerzonego wyjścia dla tego zapytania. Zobacz \ x.

Sekwencja \x\g\xrobi to samo, ale tylko wtedy, gdy \x(= rozszerzony wyświetlacz) jest wyłączony. W przeciwnym razie robi to odwrotnie! Dla kontrastu \gxzawsze wyświetla się z rozszerzoną mocą wyjściową niezależnie od bieżącego reżimu \x.

Daniel Vérité
źródło
3

Możesz przełączyć psql do trybu rozszerzonego za pomocą \ x przed uruchomieniem polecenia, ale nie możesz tego zrobić na podstawie polecenia, tak jak w mysql.

David Pashley
źródło