Postgres setara dengan MySQL's G?

78

Adakah yang tahu apakah Postgres memiliki cara untuk menampilkan hasil kueri "cantik", seperti bagaimana MySQL melakukannya saat mengakhiri kueri dengan \ G pada baris perintah? Misalnya, "pilih * dari sesuatu \ G" sebagai kebalikan dari "pilih * dari sesuatu;

Terimakasih banyak!

hukum
sumber

Jawaban:

93

Saya tidak cukup familiar dengan MySQL untuk mengetahui apa yang dilakukan opsi \ G, tetapi berdasarkan dokumentasi sepertinya opsi psql \ x dapat melakukan apa yang Anda inginkan.

Namun, ini toggle, jadi Anda melakukannya sebelum mengirimkan kueri.

\x
select * from sometable;
Adam Ruth
sumber
34

Sebenarnya, Anda dapat mengaktifkan pemformatan gaya \ G mysql berdasarkan per-kueri di psql dengan meletakkan yang berikut di ~ / .psqlrc:

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

Anda kemudian dapat menggunakan: G di akhir kueri di klien psql sama seperti Anda \ G di akhir kueri di klien 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
mage2k
sumber
16

Meminjam dari jawaban ini :

Anda dapat menambahkan \x\g\xke kueri seperti yang Anda lakukan dengan MySQL \G. Sebagai contoh:

select * from users \x\g\x

Perhatikan kekurangan ;pada baris di atas, ini disengaja.

Ini memiliki efek mengaktifkan tampilan yang diperluas, menjalankan permintaan yang diungkapkan, dan menonaktifkan tampilan yang diperluas, semuanya dalam satu pernyataan.

Eben Geer
sumber
7

Sejak PostgreSQL 10, psqlmemiliki \gxyang setara dengan mysql\G

select * from sometable \gx

Dokumentasi :

\ gx [nama file]
\ gx [| perintah]
\ gx setara dengan \ g, tetapi memaksa mode keluaran yang diperluas untuk kueri ini. Lihat \ x.

Urutan \x\g\xmelakukan hal yang sama, tetapi hanya ketika \x(= tampilan diperluas) tidak aktif. Kalau tidak, itu sebaliknya! Sebaliknya \gxselalu ditampilkan dengan output diperluas secara independen dari rezim saat ini \x.

Daniel Vérité
sumber
3

Anda dapat beralih psql ke mode diperluas dengan \ x sebelum Anda menjalankan perintah, tetapi Anda tidak bisa melakukannya berdasarkan perintah dengan perintah seperti yang Anda bisa di mysql.

David Pashley
sumber