如何在 CLI 提示中显示 Postgres 版本?

gre*_*reg 8 postgresql client

我希望在命令行(控制台)界面提示中显示我连接到的服务器的版本。从我在文档中读到的内容来看,可以执行 shell 命令,可以显示 psql 变量值。

这个想法是在连接上获取服务器的版本信息并在客户端的提示中使用它。我如何(在.psqlrc文件中?)在 psql 变量中分配服务器版本?

编辑:杰克道格拉斯?通过指出该\gset功能有正确的答案。结果是

show server_version
\gset
\set PROMPT1 '%:server_version: >'
Run Code Online (Sandbox Code Playgroud)

谢谢你。

Jac*_*las 8

从 9.3 开始,您可以在 psqlrc 中使用 \gset 来执行此操作:

select split_part(version(),' ',2) pmt
\gset
\set PROMPT1 '%:pmt:'
Run Code Online (Sandbox Code Playgroud)

或者,由于 '所选提示变量的值按字面打印,除非遇到百分号 (%) ':

select split_part(version(),' ',2) "PROMPT1"
\gset
Run Code Online (Sandbox Code Playgroud)

如果你的版本是 <9.3,它仍然是可能的,但要丑得多,例如:

\set PROMPT1 `psql postgres postgres -Atc "select split_part(version(),' ',2)"`
Run Code Online (Sandbox Code Playgroud)