Постгреси, еквівалентні \ G MySQL?


78

Хтось знає, чи є у Postgres спосіб «красиво» відображати результати запитів, як, наприклад, як працює MySQL, коли закінчується запит на \ G у командному рядку? Наприклад, "select * from sometable \ 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запит так само, як і до MySQL \G. Наприклад:

select * from users \x\g\x

Зверніть увагу на відсутність ;у наведеному рядку, це навмисно.

Це призводить до ввімкнення розширеного відображення, запуску вираженого запиту та відключення розширеного відображення, все в одному операторі.


7

Оскільки PostgreSQL 10, psqlмає \gxякий є точним еквівалентом mysql\G

select * from sometable \gx

Документація :

\ gx [ім'я файлу]
\ gx [| команда]
\ gx еквівалентно \ g, але примушує розширити режим виводу для цього запиту. Дивіться \ x.

Послідовність \x\g\xробить те саме, але лише тоді, коли \x(= розширений дисплей) вимкнено. Інакше це робить навпаки! На відміну від цього, \gxзавжди відображається з розширеним виходом незалежно від поточного режиму \x.


3

Ви можете переключити psql в розширений режим за допомогою \ x перед запуском команди, але ви не можете це робити в команді за командою, як можна в mysql.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.