Как я могу подтвердить, что база данных представляет собой Postgres и какую версию она использует SQL?

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

  •  01-07-2019
  •  | 
  •  

Вопрос

Я создаю установщик для приложения.Пользователь может выбрать настроенный им источник данных и указать тип базы данных.Я хочу подтвердить, что тип базы данных действительно Postgres, и, если возможно, какую версию Postgres они используют, отправив оператор SQL в источник данных.

Это было полезно?

Решение

Попробуй это:

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)

Команда работает и в MySQL:

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

Насколько я вижу, в sqlite нет команды версии.

Другие советы

SHOW server_version;

(для полноты)

SELECT version();

В PostgreSQL есть функция version(), которую вы можете вызвать.

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)

Это зависит от БД, и если эта функция существует в другой базе данных, в выходных данных будет указано PostgreSQL.

select version()

Интересный ...версия() — это функция!Интересно, почему?Версия не будет изменять или возвращать разные значения при разных входных данных/обстоятельствах.

Любопытно, потому что я помню из старых времен, что в Sybase это была глобальная переменная, и версию можно было узнать, выполнив «выбрать @@version».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top