5

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.

modius
  • 2,073
  • 2
  • 13
  • 10

6 Answers6

4

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.

Matthias Kestenholz
  • 3,300
  • 1
  • 21
  • 26
4

SHOW server_version;

(for completeness)

Milen A. Radev
  • 60,241
  • 22
  • 105
  • 110
2
SELECT version();
Galwegian
  • 41,475
  • 16
  • 112
  • 158
2

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)
Neall
  • 26,428
  • 5
  • 49
  • 48
2

This is DB dependent, and in case this function exists in another dbms, this says PostgreSQL in the output

select version()
Vinko Vrsalovic
  • 330,807
  • 53
  • 334
  • 373
0

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"

Learning
  • 8,029
  • 3
  • 35
  • 46