代码之家  ›  专栏  ›  技术社区  ›  modius

我如何确认数据库是Postgres,以及它使用的是什么版本的SQL?

  •  5
  • modius  · 技术社区  · 17 年前

    我正在为应用程序构建安装程序。用户可以选择他们配置的数据源,并指定它是什么类型的数据库。我想通过向数据源发送SQL语句来确认数据库类型确实是Postgres,如果可能的话,还要确认他们正在运行哪个版本的Postgres。

    6 回复  |  直到 17 年前
        1
  •  4
  •   Matthias Kestenholz    17 年前

    试试这个:

    mk=# SELECT version();
                                                version                                            
    -----------------------------------------------------------------------------------------------
     PostgreSQL 8.3.3 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
    (1 row)
    

    该命令在MySQL中也适用:

    mysql> select version();
    +--------------------------------+
    | version()                      |
    +--------------------------------+
    | 5.0.32-Debian_7etch1~bpo.1-log | 
    +--------------------------------+
    1 row in set (0.01 sec)
    

    据我所知,sqlite中没有版本命令。

        2
  •  4
  •   Milen A. Radev    17 年前

    SHOW server_version;

    (为完整起见)

        3
  •  2
  •   Galwegian    17 年前
    SELECT version();
    
        4
  •  2
  •   Neall    17 年前

    PostgreSQL有一个可以调用的version()函数。

    SELECT version();
    

    它将返回如下内容:

                                                version
    -----------------------------------------------------------------------------------------------
    PostgreSQL 8.3.3 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
    
        5
  •  2
  •   Vinko Vrsalovic    17 年前

    这取决于数据库,如果此函数存在于另一个dbms中,则输出中会显示PostgreSQL

    select version()
    
        6
  •  0
  •   Learning    17 年前

    有趣。.version()是一个函数!我想知道为什么?版本不会在不同的输入/情况下更改或返回不同的值。

    很好奇,因为我记得在过去,在Sybase中它曾经是一个全局变量,可以通过执行“选择@@version”来找到版本