I'm building an installer for an application. The user gets to select a datasource they have configured and nominate what type of database it is. I want to confirm that the database type is indeed Postgres, and if possible, what version of Postgres they are running by sending a SQL statement to the datasource.
-
Stop duplicating questions! <stackoverflow.com/questions/101184/…>gizmo– gizmo2008-09-19 11:31:00 +00:00Commented Sep 19, 2008 at 11:31
-
They're not duplicate questions. My research to date suggests you need quite different approaches to this problem.modius– modius2008-09-19 11:34:10 +00:00Commented Sep 19, 2008 at 11:34
Add a comment
|
6 Answers
Try this:
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)
The command works too in MySQL:
mysql> select version();
+--------------------------------+
| version() |
+--------------------------------+
| 5.0.32-Debian_7etch1~bpo.1-log |
+--------------------------------+
1 row in set (0.01 sec)
There is no version command in sqlite as far as I can see.
Comments
PostgreSQL has a version() function you can call.
SELECT version();
It will return something like this:
version
-----------------------------------------------------------------------------------------------
PostgreSQL 8.3.3 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Comments
Interesting ... version() is a function! I wonder why? Version is not going to change or return different values under different inputs/circumstances.
Curious because I remember from old days that in Sybase it used to be a global variable and version could be found out by doing "select @@version"