데이터베이스가 Postgres인지, SQL을 사용하는 버전이 무엇인지 어떻게 확인할 수 있나요?
-
01-07-2019 - |
문제
응용프로그램용 설치 프로그램을 작성 중입니다.사용자는 자신이 구성한 데이터 소스를 선택하고 그것이 어떤 유형의 데이터베이스인지 지정할 수 있습니다.데이터베이스 유형이 실제로 Postgres인지 확인하고, 가능하다면 데이터 소스에 SQL 문을 보내 실행 중인 Postgres 버전을 확인하고 싶습니다.
해결책
이 시도:
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)
이는 DB에 따라 다르며 이 함수가 다른 DBMS에 존재하는 경우 출력에 PostgreSQL이라고 표시됩니다.
select version()
흥미로운 ...version()은 함수입니다!왜 그럴까요?버전은 다른 입력/상황에 따라 다른 값을 변경하거나 반환하지 않습니다.
Sybase에서는 전역 변수였으며 "@@version 선택"을 수행하여 버전을 찾을 수 있었던 예전 기억이 나기 때문에 궁금합니다.
제휴하지 않습니다 StackOverflow