6

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.

2
  • Stop duplicating questions! <stackoverflow.com/questions/101184/…> Commented Sep 19, 2008 at 11:31
  • They're not duplicate questions. My research to date suggests you need quite different approaches to this problem. Commented Sep 19, 2008 at 11:34

6 Answers 6

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.

Sign up to request clarification or add additional context in comments.

Comments

4

SHOW server_version;

(for completeness)

Comments

2
SELECT version();

Comments

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)

Comments

2

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

select version()

Comments

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"

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.