Come posso confermare un database Postgres & quale versione si sta utilizzando SQL?
-
01-07-2019 - |
Domanda
Sto costruendo un programma di installazione per un'applicazione.L'utente può selezionare un'origine hanno configurato e nominare quale tipo di database è.Voglio confermare che il tipo di database è, infatti, Postgres, e, se possibile, qual è la versione di Postgres sono in esecuzione tramite l'invio di un'istruzione SQL per l'origine dati.
Soluzione
Prova questo:
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)
Il comando funziona anche in MySQL:
mysql> select version();
+--------------------------------+
| version() |
+--------------------------------+
| 5.0.32-Debian_7etch1~bpo.1-log |
+--------------------------------+
1 row in set (0.01 sec)
Non esiste una versione di comando in sqlite, per quanto posso vedere.
Altri suggerimenti
SHOW server_version;
(per completezza)
SELECT version();
PostgreSQL ha una versione() la funzione si può chiamare.
SELECT version();
Restituirà qualcosa di simile a questo:
version
-----------------------------------------------------------------------------------------------
PostgreSQL 8.3.3 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Questo è il DB dipendente, e nel caso in cui questa funzione è presente in un altro dbms, dice di PostgreSQL in uscita
select version()
Interessante ...versione() è una funzione!Mi chiedo perché?La versione non ha intenzione di cambiare o restituire valori diversi in diversi ingressi/circostanze.
Curioso, perché mi ricordo che da giorni che in Sybase ha usato per essere una variabile globale e la versione potrebbe essere scoperto da fare "select @@version"