it-swarm-ru.tech

Postgres эквивалентно MySQL's \ G?

Кто-нибудь знает, есть ли у Postgres способ "красиво" отображать результаты запроса, например, как это делает MySQL при завершении запроса с помощью\G в командной строке? Например, "select * from sometable\G" вместо "select * from sometable";

Большое спасибо!

87
law

Я не достаточно знаком с MySQL, чтобы знать, что делает опция\G, но, основываясь на документации, похоже, что опция psql\x может делать то, что вы хотите.

Это переключение, поэтому вы делаете это, прежде чем отправить запрос.

\x
select * from sometable;
100
Adam Ruth

На самом деле, вы можете включить\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
34
mage2k

Заимствование из этот ответ :

Вы можете добавить \x\g\x к запросу так же, как с MySQL \G. Например:

select * from users \x\g\x

Обратите внимание на отсутствие ; в приведенной выше строке, это намеренно.

Это дает эффект включения расширенного отображения, выполнения выраженного запроса и отключения расширенного отображения - все в одном операторе.

19
Eben Geer

Начиная с PostgreSQL 10, psql имеет \gx, что является точным эквивалентом \G mysql

select * from sometable \gx

документация :

\ gx [имя файла]
\gx [| команда]
\gx эквивалентно\g, но вызывает расширенный режим вывода для этого запроса. Смотрите\х.

Последовательность \x\g\x делает то же самое, но только когда \x (= расширенное отображение) выключено. В противном случае это делает противоположное! В отличие от этого \gx всегда отображается с расширенным выводом независимо от текущего режима \x.

9
Daniel Vérité

Вы можете переключить psql в расширенный режим с помощью\x, прежде чем запускать команду, но вы не можете сделать это по команде, как в mysql.

3
David Pashley