私はUbuntu上で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 |
Postgresql 9.2の新機能。 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を再起動して、起動時に.psqlrc
コマンドを設定します。 詳細はpsqlドキュメントの 'Files'セクションをご覧ください 。
〜/ .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 format wrapped"は、データを画面にきちんと合わせようとするという点では似ていますが、ヘッダーが収まらない場合はunalignedに戻ります。これが折り返しの例です。
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
また、HTML出力のオン/オフを切り替える\ Hを必ずチェックしてください。コンソールで読むのは必ずしも簡単ではありませんが、特に複数行の比較的複雑なデータを表示するためにファイルにダンプする(\ oを参照)、またはエディタ/ブラウザウィンドウに貼り付けるには興味深いです。
クエリ出力をHTMLテーブルとして表示するには、zenityを使用できます。
まず以下のコードでbashスクリプトを実装します。
cat> '/tmp/sql.op'; zenity --text-info --html --filename = '/ tmp/sql.op';
保存してくださいmypager.sh
次に、スクリプトのフルパスを値として設定して、環境変数PAGERをエクスポートします。
例えば、 - export PAGER = '/ path/mypager.sh'
それからpsqlプログラムにログインし、そしてコマンドを実行します\ H
そして最後に任意のクエリを実行すると、tabledの出力がhtmlテーブル形式で正確に表示されます。