PostgreSQL psql终端命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL psql终端命令相关的知识,希望对你有一定的参考价值。

我正在努力让psql格式化,并遵循文档here。现在,每当我对包含大量列的表进行查询时,无论我的屏幕有多大,每一行都会溢出到下一行并产生一整页不可读的垃圾。

文档(链接在上面)说有一种方法可以很好地对齐列以获得更可读的输出。

通常,要启动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"

关于如何让这些命令行参数为我工作的任何想法?

答案

这些不是命令行参数。运行psql。管理以登录数据库(如果需要,则传递主机名,端口,用户和数据库)。然后在psql程序中编写它。

示例(下面是两个命令,写第一个,按回车,等待psql登录,写第二个):

psql -h host -p 5900 -U username database
pset format aligned
另一答案

使用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
另一答案
psql --pset=format=FORMAT

非常适合从命令行执行查询,例如

psql --pset=format=unaligned -c "select bandanavalue from bandana where bandanakey = 'atlassian.confluence.settings';"

以上是关于PostgreSQL psql终端命令的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL操作-psql基本命令

访问PostgreSQL数据库

从命令行导入 PostgreSQL CSV

PostgreSQL-psql命令详解

linux debian 9 配置postgresSQL数据库

PostgreSQL 的命令行工具 psql 的常用命令