获得可比较的PostgreSQL版本号

时间:2017-04-04 12:18:59

标签: postgresql versioning

我需要确保可用的PostgreSQL版本不低于所需版本。可以按如下方式请求版本字符串:

SELECT VERSION();

它给我回复:

  

PostgreSQL 9.5.4,由Visual C ++ build 1800,64位编译

理论上我可以解析这个字符串,但我不确定PostgreSQL服务器的未来版本会保持这个字序。

PostgreSQL是否有一些可预测的版本报告可能会分为主要版本号和次要版本号?

3 个答案:

答案 0 :(得分:1)

show server_version_num; --returns 90602::text
show server_version; --returns 9.6.2::text

答案 1 :(得分:1)

https://blog.2ndquadrant.com/finding-postgresql-version/说:

您可以在SQL查询中更轻松地使用它,例如

SELECT current_setting('server_version_num');

答案 2 :(得分:0)

您可以查询pg_settings

中的PostreSql视图pg_catalog
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_valmax_val

此查询等同于@ŁukaszKamiński提供的答案,其中包含更多详细信息(如果您选择所有列。)