我在一个企业环境中(运行Debian Linux),没有自己安装它。我使用Navicat或phpPgAdmin访问数据库(如果有帮助的话)。我也没有运行数据库的服务器的shell访问权。


当前回答

我相信这就是你要找的,

服务器版本:

pg_config --version

客户端版本:

psql --version

其他回答

公认的答案是很好的,但如果你需要与PostgreSQL版本进行编程交互,可能更好的做法是:

SELECT current_setting('server_version_num'); -- Returns 90603 (9.6.3)
-- Or using SHOW command:
SHOW server_version_num; -- Returns 90603 too

它将以整数形式返回服务器版本。这是如何在PostgreSQL源代码中测试服务器版本的,例如:

/*
 * This is a C code from pg_dump source.
 * It will do something if PostgreSQL remote version (server) is lower than 9.1.0
 */
if (fout->remoteVersion < 90100)
    /*
     * Do something...
     */  

更多信息在这里和这里。

执行命令

psql -V

在哪里

V必须大写。

我相信这就是你要找的,

服务器版本:

pg_config --version

客户端版本:

psql --version

在shell psql.exe中执行

\! psql -V

如果你在debian/ubuntu系统上有对服务器的shell访问权限(问题中提到op没有,但如果你有的话)

sudo apt-cache policy postgresql

它将输出已安装的版本,

postgresql:
  Installed: 9.6+184ubuntu1.1
  Candidate: 9.6+184ubuntu1.1
  Version table:
 *** 9.6+184ubuntu1.1 500
        500 http://in.archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages
        500 http://in.archive.ubuntu.com/ubuntu artful-updates/main i386 Packages
        500 http://security.ubuntu.com/ubuntu artful-security/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu artful-security/main i386 Packages
        100 /var/lib/dpkg/status
     9.6+184ubuntu1 500
        500 http://in.archive.ubuntu.com/ubuntu artful/main amd64 Packages
        500 http://in.archive.ubuntu.com/ubuntu artful/main i386 Packages

其中Installed: <version>是已安装的postgres包版本。