5

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

4

6 回答 6

4

试试这个:

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 中没有版本命令。

于 2008-09-19T11:33:30.157 回答
4

SHOW server_version;

(为了完整性)

于 2008-09-19T11:45:24.643 回答
2
SELECT version();
于 2008-09-19T11:32:28.257 回答
2

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)
于 2008-09-19T11:33:41.763 回答
2

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

select version()
于 2008-09-19T11:34:10.250 回答
0

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

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

于 2008-09-19T11:50:38.343 回答