2008-09-19 7 views
5

Je construis un installateur pour une application. L'utilisateur peut sélectionner une source de données qu'il a configurée et nommer quel type de base de données il est. Je veux confirmer que le type de base de données est en effet Postgres, et si possible, quelle version de Postgres ils exécutent en envoyant une instruction SQL à la source de données.Comment puis-je confirmer qu'une base de données est Postgres et quelle version utilise SQL?

+0

Arrêtez dupliquant des questions! gizmo

+0

Ce ne sont pas des questions en double. Ma recherche à ce jour suggère que vous avez besoin d'approches assez différentes à ce problème. – modius

Répondre

4

Essayez ceci:

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) 

La commande fonctionne aussi dans MySQL:

mysql> select version(); 
+--------------------------------+ 
| version()      | 
+--------------------------------+ 
| 5.0.32-Debian_7etch1~bpo.1-log | 
+--------------------------------+ 
1 row in set (0.01 sec) 

Il n'y a pas de commande de version dans SQLite pour autant que je peux voir.

2

PostgreSQL possède une fonction version() que vous pouvez appeler.

SELECT version(); 

Il retournera quelque chose comme ceci:

          version 
----------------------------------------------------------------------------------------------- 
PostgreSQL 8.3.3 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7) 
2

Ceci est DB à charge, et dans le cas où cette fonction existe dans un autre DBMS, cela dit PostgreSQL dans la sortie

select version() 
4

SHOW server_version;

(pour l'exhaustivité)

+0

Merci, j'ai appris quelque chose de nouveau! :) –

0

Intéressant ... version() est une fonction! Je me demande pourquoi? La version ne va pas changer ou retourner des valeurs différentes sous différentes entrées/circonstances.

Curieux parce que je me souviens de vieux jours que Sybase l'habitude d'être une variable globale et la version pourrait être trouvée en faisant « select @@ version »

Questions connexes