2008-09-19 21 views
5

Bir uygulama için bir yükleyici yapıyorum. Kullanıcı yapılandırdığı veri kaynağını seçer ve ne tür bir veritabanı olduğunu belirler. Veritabanının gerçekten Postgres olduğunu doğrulamak istiyorum ve mümkünse, PostScript'in hangi versiyonunu veri kaynağına bir SQL ifadesi göndererek çalıştırıyorlar.Bir veritabanının Postgres olduğunu ve SQL'in hangi sürümünü kullandığını nasıl doğrulayabilirim?

+0

Dur çoğaltarak soruları "@@ sürümü seçin" yaparak dışarı bulunamadı! gizmo

+0

Yinelenen sorular değiller. Bugüne kadar yaptığım araştırmam, bu probleme oldukça farklı yaklaşımlar gerektiğini gösteriyor. – modius

cevap

4

bu deneyin:

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) 

komut MySQL çok çalışır:

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

bildiğim kadarıyla gördüğünüz gibi sqlite hiçbir versiyon komutu yoktur.

2

PostgreSQL, arayabileceğiniz bir version() işlevine sahiptir.

SELECT version(); 

Böyle bir şey döndürür:

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

Bu DB bağlıdır ve durumda bu fonksiyon başka dbms var, bu çıkış

select version() 
4

SHOW server_version; PostgreSQL'i diyor

(tamlık)

+0

Teşekkürler, yeni bir şey öğrendim! :) –

0

İlginç ... version() bir işlevdir! Nedenini merak ediyorum? Sürüm, farklı girişler/koşullar altında farklı değerler değiştirmeyecek veya geri dönmeyecektir.

ben Sybase içinde küresel bir değişken ve sürümü eskiden olduğu eski günlerden hatırlıyorum çünkü Meraklı

İlgili konular