Alternatywny format wyjściowy dla psql
Używam PostgreSQL 8.4 na Ubuntu. Mam tabelę z kolumnami c1
do cN
. Kolumny są na tyle szerokie, że wybranie wszystkich kolumn powoduje wielokrotne zawijanie wierszy wyników zapytań. W związku z tym wyjście jest trudne do odczytania.
Gdy wyniki kwerendy stanowią tylko kilka wierszy, byłoby wygodne, gdybym mógł wyświetlić wyniki kwerendy w taki sposób, że każda kolumna każdego wiersza jest w oddzielnej linii, np.
c1: <value of row 1's c1>
c2: <value of row 1's c1>
...
cN: <value of row 1's cN>
---- some kind of delimiter ----
c1: <value of row 2's c1>
etc.
Uruchamiam te zapytania na serwerze, na którym wolę nie instalować żadnego dodatkowego oprogramowania. Czy jest jakieś ustawienie psql, które pozwoli mi zrobić coś takiego?
7 answers
Musiałam poświęcić więcej czasu na przeglądanie dokumentacji. To polecenie:
\x on
Zrobię dokładnie to, co chciałem. Oto Przykładowe wyjście:
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 |
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-07 16:12:16
(Nowy) rozszerzony tryb Auto: \ x auto
Nowość dla Postgresql 9.2; PSQL automatycznie dopasowuje rekordy do szerokości ekranu. wcześniej tryb rozszerzony był włączany lub wyłączany i w razie potrzeby trzeba było przełączać się między trybami.
- jeśli rekord zmieści się na szerokości ekranu; psql używa normalnego formatowania.
- jeśli rekord może nie zmieścić się na szerokości ekranu; psql używa trybu rozszerzonego.
Aby uzyskać to użyj: \x auto
Dokumentacja Postgresql 9.5 na komendzie PSQL.
Szeroki ekran, normalne formatowanie:
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)
Wąski ekran, rozszerzone formatowanie:
-[ 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
Jak uruchomić psql z \X auto?
Skonfiguruj polecenie \x auto
podczas uruchamiania, dodając je do .psqlrc
w folderze domowym i uruchamiając ponownie psql. zajrzyj do sekcji "pliki" w dokumencie psql, aby uzyskać więcej informacji .
~/.psqlrc
\x auto
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-07 10:11:16
Masz tak wiele wyborów, jak możesz być zdezorientowany: -)? Główne elementy sterujące to:
# \pset format
# \H
# \x
# \pset pager off
Każdy ma opcje i interakcje z innymi. Najbardziej automatyczne opcje to:
# \x off;\pset format wrapped
# \x auto
Nowsza opcja "\ x auto "przełącza się na wyświetlanie linii po linii tylko "w razie potrzeby".
-[ 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
Starszy "\ PSET format wrapped " jest podobny do tego, że próbuje dopasować dane na ekranie, ale wraca do nienazwanego, jeśli nagłówki nie pasują. Oto przykład zapakowanego:
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-16 18:48:34
Należy również sprawdzić \H, który włącza/wyłącza wyjście HTML. Niekoniecznie łatwe do odczytania w konsoli, ale interesujące do wrzucania do pliku (patrz \o) lub wklejania do okna edytora/przeglądarki w celu przeglądania, szczególnie z wieloma wierszami stosunkowo złożonych danych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-01 00:00:30
Ciekawostką jest to, że możemy oglądać stoły poziomo, bez składania. możemy użyć zmiennej środowiskowej PAGER
. psql korzysta z niego. możesz ustawić
export PAGER='/usr/bin/less -S'
Lub po prostu less -S
jeśli jest już dostępny w wierszu poleceń, jeśli nie w odpowiedniej lokalizacji. - S, aby zobaczyć rozłożone linie. możesz przejść w dowolnej niestandardowej przeglądarce lub innych opcjach.
Napisałem więcej w Psql Wyświetlacz poziomy
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-29 22:03:17
pspg
to proste narzędzie, które oferuje zaawansowane formatowanie tabel, przewijanie w poziomie, wyszukiwanie i wiele innych funkcji.
git clone https://github.com/okbob/pspg.git
cd pspg
./configure
make
make install
Następnie upewnij się, że zaktualizujesz PAGER
zmienną np. w swoim ~/.bashrc
export PAGER="pspg -s 6"
Gdzie -s
oznacza Schemat Kolorów (1-14
). Jeśli używasz repozytoriów pgdg po prostu zainstaluj pakiet (w dystrybucji podobnej do Debiana):
sudo apt install pspg
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-17 00:48:43
Możesz użyć zenity aby wyświetlić wynik zapytania jako tabelę html.
-
Najpierw zaimplementuj skrypt bash z następującym kodem:
Cat > ' / tmp/sql.op"; zenity --text-info --html --filename= ' /tmp/sql.op';
save it like mypager.sh
-
Następnie wyeksportuj zmienną środowiskową PAGER ustawiając pełną ścieżkę skryptu jako wartość.
Na przykład: - export PAGER= "/path/mypager.sh"
Następnie zaloguj się do programu psql i wykonaj polecenie \H
I na koniec wykonaj dowolne zapytanie, złożone wyjście wyświetli się w zenity w formacie tabeli html.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-30 13:04:59