データベースが Postgres であることと、SQL を使用しているバージョンを確認するにはどうすればよいですか?

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

  •  01-07-2019
  •  | 
  •  

質問

アプリケーションのインストーラーを構築しています。ユーザーは、設定したデータソースを選択し、それがどのタイプのデータベースであるかを指定します。データソースに SQL ステートメントを送信して、データベースの種類が実際に Postgres であることを確認し、可能であれば、どのバージョンの 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 には version コマンドはありません。

他のヒント

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 ではこれがグローバル変数であり、「select @@version」を実行することでバージョンを確認できたことを覚えているので興味深いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top