Wie kann ich eine Datenbank bestätigen ist Postgres & welche Version es ist mit SQL?
-
01-07-2019 - |
Frage
Ich baue ein Installationsprogramm für eine Anwendung. Der Benutzer erhält eine Datenquelle sie konfiguriert auszuwählen haben und zu benennen, welche Art von Datenbank ist es. Ich möchte bestätigen, dass der Datenbanktyp in der Tat Postgres ist, und, wenn möglich, welche Version von Postgres sie durch das Senden einer SQL-Anweisung an die Datenquelle ausgeführt werden.
Lösung
Versuchen Sie folgendes:
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)
Der Befehl funktioniert auch in MySQL:
mysql> select version();
+--------------------------------+
| version() |
+--------------------------------+
| 5.0.32-Debian_7etch1~bpo.1-log |
+--------------------------------+
1 row in set (0.01 sec)
Es gibt keine Version Befehl in SQLite, soweit ich sehen kann.
Andere Tipps
SHOW server_version;
(auf Vollständigkeit)
SELECT version();
PostgreSQL hat eine Version () Funktion, die Sie aufrufen können.
SELECT version();
Es wird so etwas wie dies zurück:
version
-----------------------------------------------------------------------------------------------
PostgreSQL 8.3.3 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
Diese DB abhängig ist, und in dem Fall besteht diese Funktion in einem anderen DBMS, das sagt PostgreSQL in der Ausgabe
select version()
Interessante ... Version () ist eine Funktion! Ich wundere mich warum? Version wird nicht oder unterschiedliche Werte unter verschiedenen Ein- / Umständen zurückkehren ändern.
Neugierig, weil ich aus alten Zeiten erinnern, dass in Sybase es verwendet eine globale Variable zu sein und die Version herausgefunden, indem Sie „select @@ Version“ werden könnte