2008-09-19 13 views
5

Estoy construyendo un instalador para una aplicación. El usuario puede seleccionar una fuente de datos que haya configurado y nominar qué tipo de base de datos es. Quiero confirmar que el tipo de base de datos es de hecho Postgres y, si es posible, qué versión de Postgres están ejecutando enviando una declaración SQL a la fuente de datos.¿Cómo puedo confirmar que una base de datos es Postgres y qué versión usa SQL?

+0

preguntas Detener la duplicación! gizmo

+0

No son preguntas duplicadas. Mi investigación hasta la fecha sugiere que necesita enfoques bastante diferentes para este problema. – modius

Respuesta

4

Prueba esto:

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) 

El comando también funciona en MySQL:

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

No hay un comando versión de SQLite por lo que yo puedo ver.

2

PostgreSQL tiene una función de versión() a la que puede llamar.

SELECT version(); 

Se devolverá algo como esto:

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

Esto depende DB, y en caso de que exista esta función en otro DBMS, esto dice PostgreSQL en la salida

select version() 
4

SHOW server_version;

(para completar)

+0

¡Gracias, aprendí algo nuevo! :) –

0

Interesante ... la versión() es una función! ¿Me pregunto porque? La versión no va a cambiar o devolver valores diferentes bajo diferentes entradas/circunstancias.

curioso porque recuerdo de los viejos días en que Sybase que solía ser una variable global y la versión se puede conocer a cabo haciendo "select @@ version"

Cuestiones relacionadas