获取可比较的 PostgreSQL 版本号
Get comparable PostgreSQL version number
我需要确保可用的 PostgreSQL 版本不低于要求的版本。可以按如下方式请求版本字符串:
SELECT VERSION();
它 returns 我是这样的:
PostgreSQL 9.5.4, compiled by Visual C++ build 1800, 64-bit
理论上我可以解析这个字符串,但我不确定未来版本的 PostgreSQL 服务器是否会保留这个词序。
PostgreSQL 是否有一些可预测的版本报告可能分为主要版本号和次要版本号?
show server_version_num; --returns 90602::text
show server_version; --returns 9.6.2::text
您可以查询位于 pg_catalog
的 PostreSql 视图 pg_settings
select * from pg_settings where name like '%version%';
上面的查询会给你带来两个设置:
name other columns .....
server_version .....
server_version_num .....
对于您的具体情况,您需要以下配置:
select name, setting, min_val, max_val
from pg_settings
where name = 'server_version_num';
name setting min_val max_val
--------------------------------------------------
server_version_num 90503 90503 90503
从这里您可以使用 min_val
和 max_val
此查询等同于@ŁukaszKamiński 提供的答案,其中包含更多详细信息(如果您 select 所有列。)
https://blog.2ndquadrant.com/finding-postgresql-version/ 说:
您可以在这样的 SQL 查询中更轻松地使用它
SELECT current_setting('server_version_num');
我需要确保可用的 PostgreSQL 版本不低于要求的版本。可以按如下方式请求版本字符串:
SELECT VERSION();
它 returns 我是这样的:
PostgreSQL 9.5.4, compiled by Visual C++ build 1800, 64-bit
理论上我可以解析这个字符串,但我不确定未来版本的 PostgreSQL 服务器是否会保留这个词序。
PostgreSQL 是否有一些可预测的版本报告可能分为主要版本号和次要版本号?
show server_version_num; --returns 90602::text
show server_version; --returns 9.6.2::text
您可以查询位于 pg_catalog
pg_settings
select * from pg_settings where name like '%version%';
上面的查询会给你带来两个设置:
name other columns .....
server_version .....
server_version_num .....
对于您的具体情况,您需要以下配置:
select name, setting, min_val, max_val
from pg_settings
where name = 'server_version_num';
name setting min_val max_val
--------------------------------------------------
server_version_num 90503 90503 90503
从这里您可以使用 min_val
和 max_val
此查询等同于@ŁukaszKamiński 提供的答案,其中包含更多详细信息(如果您 select 所有列。)
https://blog.2ndquadrant.com/finding-postgresql-version/ 说:
您可以在这样的 SQL 查询中更轻松地使用它
SELECT current_setting('server_version_num');