Como posso confirmar um banco de dados é Postgres e qual a versão que está usando SQL?

StackOverflow https://stackoverflow.com/questions/101198

  •  01-07-2019
  •  | 
  •  

Pergunta

Eu estou construindo um instalador para um aplicativo. O usuário recebe para selecionar uma fonte de dados que tenham configurado e nomear o tipo de banco de dados que é. Eu quero confirmar que o tipo de banco de dados é de fato Postgres e, se possível, qual a versão do Postgres eles estão executando através do envio de uma instrução SQL para a fonte de dados.

Foi útil?

Solução

Tente isto:

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)

O comando também funciona no MySQL:

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

Não há nenhum comando versão em SQLite, tanto quanto eu posso ver.

Outras dicas

SHOW server_version;

(para a completude)

SELECT version();

PostgreSQL tem uma versão () função que você pode chamar.

SELECT version();

Ele irá retornar algo como isto:

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

Esta é DB dependente, e no caso de esta função existe no outro DBMS, este diz PostgreSQL na saída

select version()

Interessante ... version () é uma função! Eu quero saber porque? Versão não vai mudar ou devolver valores diferentes sob diferentes entradas / circunstâncias.

curioso porque eu me lembro de dias velhos que no Sybase que costumava ser uma variável global e a versão podem ser encontrados por fazer "select @@ version"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top