우분투에서 PostgreSQL 8.4를 사용하고 있습니다. c1
통해 열이있는 테이블이 있습니다 cN
. 모든 열을 선택하면 한 행의 쿼리 결과가 여러 번 랩핑 될 수있을 정도로 열이 넓습니다. 결과적으로 출력을 읽기가 어렵습니다.
쿼리 결과가 단지 몇 개의 행을 구성 할 때 각 행의 각 열이 별도의 줄에 있도록 쿼리 결과를 볼 수 있다면 편리합니다.
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.
추가 소프트웨어를 설치하지 않으려는 서버에서 이러한 쿼리를 실행하고 있습니다. 그런 식으로 할 수있는 psql 설정이 있습니까?
답변
방금 문서를 응시하는 데 더 많은 시간을 소비해야했습니다. 이 명령은
\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 |
답변
(New) 확장 자동 모드 : \ x auto
Postgresql 9.2의 새로운 기능; PSQL은 레코드를 화면 너비에 자동으로 맞 춥니 다. 이전에는 모드를 켜거나 끄고 필요에 따라 모드를 전환해야했습니다.
- 레코드가 화면 너비에 맞을 수있는 경우 psql은 일반적인 형식을 사용합니다.
- 레코드가 화면 너비에 맞지 않는 경우 ; psql은 확장 모드를 사용합니다.
이것을 사용하려면 \ x auto
PSQL 명령에 대한 Postgresql 9.5 설명서.
와이드 스크린, 일반 형식 :
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
\ x auto로 psql을 시작하는 방법?
\x auto
시작시 명령을 .psqlrc
홈 폴더 에 추가하고 psql을 다시 시작하여 명령을 구성 하십시오. 자세한 내용은 psql 문서의 ‘파일’섹션을 참조하십시오 .
~ / .psqlrc
\x auto
답변
선택의 폭이 넓어 어떻게 혼란 스러울 수 있습니까? 주요 컨트롤은 다음과 같습니다.
# \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 wrap format”은 화면에 데이터를 깔끔하게 맞추려고하지만 헤더가 맞지 않으면 정렬되지 않은 상태로 돌아갑니다. 래핑 된 예는 다음과 같습니다.
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
답변
흥미로운 점은 접지 않고 테이블을 가로로 볼 수 있다는 것입니다. PAGER
환경 변수 를 사용할 수 있습니다 . psql은 그것을 사용합니다. 당신은 설정할 수 있습니다
export PAGER='/usr/bin/less -S'
또는 less -S
적절한 위치가 아닌 경우 명령 행에서 이미 사용 가능한 경우. 펼쳐진 선을 보려면 -S 모든 사용자 정의 뷰어 또는 다른 옵션을 전달할 수 있습니다.
Psql Horizontal Display 에서 더 많이 썼습니다.
답변
pspg
고급 테이블 형식, 가로 스크롤, 검색 및 더 많은 기능을 제공하는 간단한 도구입니다.
git clone https://github.com/okbob/pspg.git
cd pspg
./configure
make
make install
그런 다음 PAGER
변수 를 업데이트 하십시오 (예 :~/.bashrc
export PAGER="pspg -s 6"
여기서 -s
색상에 대한 스탠드 ( 1-14
). 당신이 사용하는 경우 pgdg 저장소를 단순히 (배포판처럼 데비안) 패키지를 설치합니다 :
sudo apt install pspg
답변
또한 HTML 출력을 켜거나 끄는 \ H를 확인하십시오. 콘솔에서 쉽게 읽을 수있는 것은 아니지만 파일로 덤프하거나 (\ o 참조) 편집기 / 브라우저 창에 붙여 넣어 볼 수 있습니다. 특히 여러 행의 비교적 복잡한 데이터가있는 경우에 유용합니다.
답변
zenity 를 사용하여 쿼리 출력을 html 테이블로 표시 할 수 있습니다 .
-
먼저 다음 코드로 bash 스크립트를 구현하십시오.
cat> ‘/tmp/sql.op’; zenity –text-info –html –filename = ‘/ tmp / sql.op’;
mypager.sh 처럼 저장
-
그런 다음 스크립트의 전체 경로를 값으로 설정하여 환경 변수 PAGER를 내보내십시오.
예를 들면 다음과 같습니다 .- export PAGER = ‘/ path / mypager.sh’
-
그런 다음 psql 프로그램에 로그인 한 다음 \ H 명령을 실행하십시오.
-
마지막으로 쿼리를 실행하면 테이블 출력이 html 테이블 형식으로 zenity로 표시됩니다.
