it-swarm-vi.tech

Postgres tương đương với \ G của MySQL?

Có ai biết Postgres có cách hiển thị kết quả truy vấn một cách "đẹp mắt" không, giống như cách MySQL thực hiện khi kết thúc truy vấn với\G trên dòng lệnh? Ví dụ: "select * từ đôi khi\G" trái ngược với "select * từ đôi khi;"

Cảm ơn nhiều!

87
law

Tôi không đủ quen thuộc với MySQL để biết tùy chọn\G làm gì, nhưng dựa trên tài liệu, có vẻ như tùy chọn psql\x có thể làm những gì bạn muốn.

Tuy nhiên, đó là một sự thay đổi, vì vậy bạn làm điều đó trước khi gửi truy vấn.

\x
select * from sometable;
100
Adam Ruth

Trên thực tế, bạn có thể kích hoạt định dạng kiểu\G mysql trên cơ sở mỗi truy vấn trong psql bằng cách đặt nội dung sau vào ~/.psqlrc:

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

Sau đó, bạn có thể sử dụng: G ở cuối truy vấn trong máy khách psql giống như bạn sẽ\G ở cuối truy vấn trong máy khách 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
34
mage2k

Mượn từ câu trả lời này :

Bạn có thể nối \x\g\x Vào truy vấn giống như với \G Của MySQL. Ví dụ:

select * from users \x\g\x

Lưu ý việc thiếu ; Trong dòng trên, đây là cố ý.

Điều này có tác dụng cho phép hiển thị mở rộng, chạy truy vấn được thể hiện và vô hiệu hóa hiển thị mở rộng, tất cả trong một câu lệnh.

19
Eben Geer

Kể từ PostgreSQL 10, psql\gx Tương đương chính xác với \G Của mysql

select * from sometable \gx

Tài liệ :

\ gx [tên tệp]
[.__.]\gx [| lệnh]
[.__.]\gx tương đương với\g, nhưng buộc chế độ đầu ra mở rộng cho truy vấn này. Xem\x.

Chuỗi \x\g\x Thực hiện tương tự, nhưng chỉ khi \x (= Hiển thị mở rộng) tắt. Nếu không thì làm ngược lại! Ngược lại, \gx Luôn hiển thị với đầu ra được mở rộng độc lập với chế độ hiện tại là \x.

9
Daniel Vérité

Bạn có thể chuyển psql sang chế độ mở rộng với\x trước khi bạn chạy lệnh, nhưng bạn không thể thực hiện trên lệnh bằng cơ sở lệnh như bạn có thể làm trong mysql.

3
David Pashley