5

アプリケーションのインストーラーを作成しています。ユーザーは、構成したデータソースを選択し、それがどのタイプのデータベースであるかを指定できます。データベースの種類が確かに Postgres であることを確認したいのですが、可能であれば、SQL ステートメントをデータソースに送信して実行している Postgres のバージョンを確認したいと思います。

4

6 に答える 6

4

これを試して:

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 にはバージョン コマンドはありません。

于 2008-09-19T11:33:30.157 に答える
4

SHOW server_version;

(完全を期すために)

于 2008-09-19T11:45:24.643 に答える
2
SELECT version();
于 2008-09-19T11:32:28.257 に答える
2

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)
于 2008-09-19T11:33:41.763 に答える
2

これは DB 依存であり、この関数が別の dbms に存在する場合、出力に PostgreSQL と表示されます

select version()
于 2008-09-19T11:34:10.250 に答える
0

興味深い... version() は関数です! なぜだろう?バージョンは、異なる入力/状況下で異なる値を変更または返すことはありません。

昔からSybaseではグローバル変数であり、「select @@version」を実行することでバージョンを知ることができたのを覚えているので、興味があります

于 2008-09-19T11:50:38.343 に答える