Postgres เทียบเท่ากับ MySQL's \ G หรือไม่


78

ไม่มีใครรู้ว่า Postgres มีวิธีแสดงผลลัพธ์ของแบบสอบถาม "prettily" เช่นเดียวกับที่ MySQL ทำเมื่อสิ้นสุดแบบสอบถามด้วย \ G บนบรรทัดคำสั่งหรือไม่ ตัวอย่างเช่น "select * from someable \ G" ซึ่งตรงข้ามกับ "select * from sometable;"

ขอบคุณมาก!

คำตอบ:


93

ฉันไม่คุ้นเคยกับ MySQL ที่จะรู้ว่าตัวเลือก \ G ทำอะไร แต่จากเอกสารดูเหมือนว่าตัวเลือก psql \ x อาจทำในสิ่งที่คุณต้องการ

แม้ว่าจะเป็นแบบเปิดปิดดังนั้นคุณต้องทำก่อนที่จะส่งแบบสอบถาม

\x
select * from sometable;

34

ที่จริงแล้วคุณสามารถเปิดใช้งานการจัดรูปแบบสไตล์ \ G mysql แบบต่อข้อความค้นหาใน psql โดยใส่ต่อไปนี้ใน ~ / .psqlrc:

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

จากนั้นคุณสามารถใช้: G ที่ส่วนท้ายของแบบสอบถามในไคลเอนต์ psql เช่นเดียวกับที่คุณต้องการ \ G ที่ส่วนท้ายของแบบสอบถามในไคลเอนต์ 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

16

การยืมจากคำตอบนี้ :

คุณสามารถผนวก\x\g\xกับการสืบค้นข้อมูลเช่นเดียวกับที่คุณจะมีของ \GMySQL ตัวอย่างเช่น:

select * from users \x\g\x

โปรดสังเกตว่าการขาด;ในบรรทัดข้างต้นนี้เป็นเจตนา

สิ่งนี้มีผลในการเปิดใช้งานการแสดงผลแบบขยายการเรียกใช้แบบสอบถามที่แสดงออกมาและการปิดใช้งานการแสดงผลแบบขยายทั้งหมดนี้อยู่ในคำสั่งเดียว


7

ตั้งแต่ PostgreSQL 10 psqlได้\gxซึ่งเป็นที่แน่นอนของเทียบเท่าของ MySQL\G

select * from sometable \gx

เอกสารประกอบ :

\ gx [filename]
\ gx [| คำสั่ง]
\ gx เทียบเท่ากับ \ g แต่บังคับให้ใช้โหมดเอาต์พุตแบบขยายสำหรับเคียวรีนี้ ดู \ x

ลำดับ\x\g\xจะเหมือนกัน แต่เฉพาะเมื่อ\x(= จอแสดงผลแบบขยาย) ปิดอยู่ มิฉะนั้นมันจะตรงกันข้าม! ในทางตรงกันข้ามจะแสดงกับการส่งออกขยายตัวเป็นอิสระจากระบอบการปกครองในปัจจุบันของ\gx\x


3

คุณสามารถสลับ psql เข้าสู่โหมดเพิ่มเติมด้วย \ x ก่อนที่คุณจะเรียกใช้คำสั่ง แต่คุณไม่สามารถทำได้บนคำสั่งตามคำสั่งพื้นฐานเช่นเดียวกับที่คุณทำใน mysql

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.