Альтернативный формат вывода для psql
Я использую PostgreSQL 8.4 на Ubuntu. У меня есть таблица со столбцами c1
через cN
. Столбцы достаточно широкие, что выбор всех столбцов приводит к тому, что ряд результатов запроса обрабатывается несколько раз. Следовательно, выход трудно прочитать.
Когда результаты запроса составляют всего несколько строк, было бы удобно, если бы я мог просматривать результаты запроса, чтобы каждый столбец каждой строки находился в отдельной строке, например.
c1: <value of row 1 c1>
c2: <value of row 1 c1>
...
cN: <value of row 1 cN>
---- some kind of delimiter ----
c1: <value of row 2 c1>
etc.
Я запускаю эти запросы на сервере, где я бы предпочел не устанавливать какое-либо дополнительное программное обеспечение. Есть ли настройка psql, которая позволит мне сделать что-то подобное?
Ответы
Ответ 1
Мне просто нужно было больше времени смотреть на документацию. Эта команда:
\x on
сделает именно то, что я хотел. Вот несколько примеров:
select * from dda where u_id=24 and dda_is_deleted='f';
-[ RECORD 1 ]------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dda_id | 1121
u_id | 24
ab_id | 10304
dda_type | CHECKING
dda_status | PENDING_VERIFICATION
dda_is_deleted | f
dda_verify_op_id | 44938
version | 2
created | 2012-03-06 21:37:50.585845
modified | 2012-03-06 21:37:50.593425
c_id |
dda_nickname |
dda_account_name |
cu_id | 1
abd_id |
Ответ 2
(новый) Расширенный автоматический режим:\x авто
Новое для Postgresql 9.2; PSQL автоматически подходит для записей по ширине экрана. ранее вы включили или выключили только расширенный режим и должны были переключаться между режимами по мере необходимости.
- Если запись может поместиться в ширину экрана; psql использует нормальное форматирование.
- Если запись может не соответствовать ширине экрана; psql использует расширенный режим.
Чтобы использовать это: \x авто
Postgresql 9.5 Документация по команде PSQL.
Широкий экран, нормальное форматирование:
id | time | humanize_time | value
----+-------+---------------------------------+-------
1 | 09:30 | Early Morning - (9.30 am) | 570
2 | 11:30 | Late Morning - (11.30 am) | 690
3 | 13:30 | Early Afternoon - (1.30pm) | 810
4 | 15:30 | Late Afternoon - (3.30 pm) | 930
(4 rows)
Узкий экран, расширенное форматирование:
-[ RECORD 1 ]-+---------------------------
id | 1
time | 09:30
humanize_time | Early Morning - (9.30 am)
value | 570
-[ RECORD 2 ]-+---------------------------
id | 2
time | 11:30
humanize_time | Late Morning - (11.30 am)
value | 690
-[ RECORD 3 ]-+---------------------------
id | 3
time | 13:30
humanize_time | Early Afternoon - (1.30pm)
value | 810
-[ RECORD 4 ]-+---------------------------
id | 4
time | 15:30
humanize_time | Late Afternoon - (3.30 pm)
value | 930
Как запустить psql с помощью \x auto
Настройте команду \x auto
при запуске, добавив ее в .psqlrc
в домашней папке и перезапустив psql. Обратитесь к разделу "Файлы" в документе psql для получения дополнительной информации.
~/.psqlrc
\x auto
Ответ 3
У вас так много вариантов, как вас можно смутить:-)? Основными элементами управления являются:
# \pset format
# \H
# \x
# \pset pager off
У каждого есть варианты и взаимодействия с другими. Наиболее автоматические параметры:
# \x off;\pset format wrapped
# \x auto
Более новая опция "\ x auto" переключается на линейный показ только "при необходимости".
-[ RECORD 1 ]---------------
id | 6
description | This is a gallery of oilve oil brands.
authority | I love olive oil, and wanted to create a place for
reviews and comments on various types.
-[ RECORD 2 ]---------------
id | 19
description | XXX Test A
authority | Testing
Более старый формат "\ pset format wrapped" похож на то, что он пытается аккуратно подбирать данные на экране, но возвращается к неглавным, если заголовки не подходят. Вот пример завернутого:
id | description | authority
----+--------------------------------+---------------------------------
6 | This is a gallery of oilve | I love olive oil, and wanted to
; oil brands. ; create a place for reviews and
; ; comments on various types.
19 | Test Test A | Testing
Ответ 4
Также не забудьте проверить \H, который включает/выключает вывод HTML. Не обязательно легко читать на консоли, но интересно для загрузки в файл (см.\O) или вставки в окно редактора/браузера для просмотра, особенно с несколькими строками относительно сложных данных.
Ответ 5
Интересно, что мы можем просматривать таблицы горизонтально, без складывания. мы можем использовать переменную среды PAGER
. psql использует его. вы можете установить
export PSQL='/usr/bin/less -S'
или просто less -S
, если он уже доступен в командной строке, если не в правильном месте. -S для просмотра развернутых строк. вы можете пройти через любой пользовательский просмотрщик или другие параметры.
Я написал больше в Горизонтальный просмотр Psql
Ответ 6
вы можете использовать zenity, чтобы отображать вывод запроса в виде таблицы html.
-
сначала реализуем bash script со следующим кодом:
cat > '/tmp/sql.op';
zenity --text-info --html --filename = '/tmp/sql.op';
сохранить его как mypager.sh
-
Затем экспортируйте переменную окружения PAGER, установив полный путь значения script.
например: - экспортировать PAGER = '/path/mypager.sh'
-
Затем войдите в программу psql, затем выполните команду \H
-
И, наконец, выполнить любой запрос, выводимый вывод будет отображаться в формате zenity в формате html.