50

私はpsqlうまくフォーマットしようとしていて、ここのドキュメントに従っています。現在、多くの列を含むテーブルに対してクエリを実行すると、画面をどれだけ大きくしても、各行が次の行にオーバーフローし、画面全体が判読不能なジャンクになります。

ドキュメント(リンクは上にあります)には、より読みやすい出力のために列をうまく整列させる方法があると書かれています。

通常、開始するpsqlには、次のように入力します。

psql

Enter を押します。今私はしようとしています:

psql \pset 形式の整列

そしてエラーが発生します:

could not change directory to "/root"
psql: warning: extra command-line argument "aligned" ingored
psql: FATAL: Indent authentication failed for user "format"

これらのコマンドライン引数を機能させる方法についてのアイデアはありますか?

4

3 に答える 3

92

これらはコマンド ライン引数ではありません。psql を実行します。データベースへのログインを管理します (必要に応じて、ホスト名、ポート、ユーザー、およびデータベースを渡します)。そして、それを psql プログラムに記述します。

例 (以下に 2 つのコマンドを示します。最初のコマンドを書き、Enter キーを押し、psql がログインするのを待ち、2 つ目のコマンドを書きます):

psql -h host -p 5900 -U username database
\pset format aligned
于 2012-01-24T16:30:24.253 に答える
6

\x postgres マニュアルの使用例:

    postgres=# \x
    postgres=# SELECT * FROM pg_stat_statements ORDER BY total_time DESC LIMIT 3;
    -[ RECORD 1 ]------------------------------------------------------------
    userid     | 10
    dbid       | 63781
    query      | UPDATE branches SET bbalance = bbalance + $1 WHERE bid = $2;
    calls      | 3000
    total_time | 20.716706
    rows       | 3000
    -[ RECORD 2 ]------------------------------------------------------------
    userid     | 10
    dbid       | 63781
    query      | UPDATE tellers SET tbalance = tbalance + $1 WHERE tid = $2;
    calls      | 3000
    total_time | 17.1107649999999
    rows       | 3000
    -[ RECORD 3 ]------------------------------------------------------------
    userid     | 10
    dbid       | 63781
    query      | UPDATE accounts SET abalance = abalance + $1 WHERE aid = $2;
    calls      | 3000
    total_time | 0.645601
    rows       | 3000
于 2012-01-24T18:49:33.980 に答える
4
psql --pset=format=FORMAT

コマンドラインからクエリを実行するのに最適です。

psql --pset=format=unaligned -c "select bandanavalue from bandana where bandanakey = 'atlassian.confluence.settings';"
于 2012-07-18T19:58:16.277 に答える