如何确认数据库为Postgres及其使用SQL的哪个版本?
时间:2020-03-06 14:25:34 来源:igfitidea点击:
我正在为应用程序构建安装程序。用户可以选择他们已经配置的数据源,并指定它是哪种数据库。我想通过将SQL语句发送到数据源来确认数据库类型确实是Postgres,如果可能的话,确认它们正在运行的Postgres版本。
解决方案
SELECT version();
试试这个:
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中没有版本命令。
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)
这取决于数据库,如果此功能存在于另一个dbms中,则输出中显示PostgreSQL
select version()
SHOW server_version;
(为了完整性)
有趣的是... version()是一个函数!我想知道为什么?在不同的输入/情况下,版本不会更改或者返回不同的值。
很好奇,因为我记得从前在Sybase中它曾经是全局变量,可以通过执行" select @@ version"来找到版本。