2008-09-19 30 views
5

Tôi đang xây dựng trình cài đặt cho một ứng dụng. Người dùng sẽ chọn một nguồn dữ liệu mà họ đã cấu hình và chỉ định loại cơ sở dữ liệu nào. Tôi muốn xác nhận rằng kiểu cơ sở dữ liệu thực sự là Postgres, và nếu có thể, phiên bản Postgres nào họ đang chạy bằng cách gửi một câu lệnh SQL tới nguồn dữ liệu.Làm cách nào để xác nhận cơ sở dữ liệu là Postgres và phiên bản nào đang sử dụng SQL?

+0

Dừng câu hỏi trùng lặp! gizmo

+0

Chúng không phải là câu hỏi trùng lặp. Nghiên cứu của tôi cho đến nay cho thấy bạn cần phương pháp tiếp cận khá khác nhau cho vấn đề này. – modius

Trả lời

4

Hãy thử điều này:

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) 

Lệnh làm việc quá trong MySQL:

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

Không có lệnh phiên bản trong sqlite như xa như tôi có thể nhìn thấy.

2

PostgreSQL có một hàm version() mà bạn có thể gọi.

SELECT version(); 

Nó sẽ trở lại một cái gì đó như thế này:

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

Đây là DB phụ thuộc, và trong trường hợp chức năng này tồn tại trong DBMS khác, điều này nói PostgreSQL trong đầu ra

select version() 
4

SHOW server_version;

(để hoàn thành)

+0

Cảm ơn, tôi đã học được điều gì đó mới mẻ! :) –

0

Thú vị ... phiên bản() là một chức năng! Tôi tự hỏi tại sao? Phiên bản sẽ không thay đổi hoặc trả lại các giá trị khác nhau theo các yếu tố đầu vào/hoàn cảnh khác nhau.

Tò mò vì tôi nhớ từ những ngày cũ mà Sybase đã từng là biến toàn cục và có thể tìm thấy phiên bản bằng cách thực hiện "select @@ version"

Các vấn đề liên quan