¿Cómo puedo confirmar una base de datos Postgres y en qué versión está utilizando SQL?
-
01-07-2019 - |
Pregunta
Estoy construyendo un instalador de una aplicación.El usuario obtiene para seleccionar un origen de datos que han configurado y nominar a 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 que se ejecutan mediante el envío de una instrucción SQL para el origen de datos.
Solución
Intente 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 ninguna versión de comando en sqlite, por lo que puedo ver.
Otros consejos
SHOW server_version;
(integridad)
SELECT version();
PostgreSQL tiene una versión() función que puede llamar.
SELECT version();
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)
Este es DB dependiente, y en caso de que esta función existe en otro dbms, este dice PostgreSQL en la salida
select version()
Interesante ...versión() es una función!Me pregunto ¿por qué?Versión no va a cambiar o devolver valores diferentes en diferentes entradas/circunstancias.
Curioso porque recuerdo de viejos tiempos, que en Sybase lo que solía ser una variable global y versión puede ser encontrado haciendo "select @@version"