psql 是一个基于终端的 PostgreSQL 前端,使您能够交互式地键入查询,将其发送到 Postgres,并查看查询结果。

本页介绍如何使用 psql 命令行工具与您的 Timescale Cloud 服务进行交互。

集成之前

在许多操作系统上,默认情况下安装了 psql。为了使用本页中描述的功能,最佳实践是使用最新版本的 psql。要检查系统上运行的版本

如果您已经安装了最新版本的 psql,请继续到 连接到您的服务 部分。

如果没有已安装的版本,请按照以下步骤安装 psql

要使用 psql 连接到您的服务,您需要连接详细信息。请参阅 查找您的连接详细信息

使用以下任一方式连接到您的服务

  • 参数标志

    psql -h <HOSTNAME> -p <PORT> -U <USERNAME> -W -d <DATABASENAME>
  • 服务 URL

    psql "postgres://<USERNAME>@<HOSTNAME>:<PORT>/<DATABASENAME>?sslmode=require"

    系统将提示您提供密码。

  • 服务 URL,其中已包含密码并启用了 更严格的 SSL 模式

    psql "postgres://<USERNAME>:<PASSWORD>@<HOSTNAME>:<PORT>/<DATABASENAME>?sslmode=verify-full"

当您开始使用 psql 时,以下是您可能最常使用的命令

命令描述
\c <DB_NAME>连接到新的数据库
\d <TABLE_NAME>显示表的详细信息
\df列出当前数据库中的函数
\df+列出所有函数,包含更多详细信息
\di列出所有表的所有索引
\dn列出当前数据库中的所有模式
\dt列出可用的表
\du列出 PostgreSQL 数据库角色
\dv列出当前模式中的视图
\dv+列出所有视图,包含更多详细信息
\dx显示所有已安装的扩展
ef <FUNCTION_NAME>编辑函数
\h显示 SQL 命令语法的帮助
\l列出可用的数据库
\password <USERNAME>更改用户的密码
\q退出 psql
\set显示系统变量列表
\timing显示查询执行所花费的时间
\x显示展开的查询结果
\?列出所有 psql 斜杠命令

有关 psql 命令的更多信息,请参阅 Timescale psql 速查表psql 文档

当您在 psql 中运行查询时,结果默认显示在控制台中。如果您运行的查询结果很多,您可能希望将结果保存到逗号分隔的 .csv 文件中。您可以使用 COPY 命令来执行此操作。例如

\copy (SELECT * FROM ...) TO '/tmp/output.csv' (format CSV);

此命令将查询结果发送到 /tmp/ 目录中名为 output.csv 的新文件。您可以使用任何电子表格程序打开该文件。

要在 psql 中运行多行查询,请使用 EOF 分隔符。例如

psql -d $TARGET -f -v hypertable=<hypertable> - <<'EOF'
SELECT public.alter_job(j.id, scheduled=>true)
FROM _timescaledb_config.bgw_job j
JOIN _timescaledb_catalog.hypertable h ON h.id = j.hypertable_id
WHERE j.proc_schema IN ('_timescaledb_internal', '_timescaledb_functions')
AND j.proc_name = 'policy_compression'
AND j.id >= 1000
AND format('%I.%I', h.schema_name, h.table_name)::text::regclass = :'hypertable'::text::regclass;
EOF

有时,查询可能会变得很长,并且您在第一次尝试键入时可能会犯错误。如果您在长查询中犯了错误,可以不用重新键入,而是可以使用内置的文本编辑器,它基于 Vim。使用 \e 命令启动查询编辑器。您之前的查询将加载到编辑器中。当您完成更改后,按 Esc,然后键入 :wq 以保存更改,然后返回到命令提示符。按 访问编辑后的查询,然后按 Enter 运行它。

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面