Postgresql Postgres中是否有MAX_INT常量?

Postgresql Postgres中是否有MAX_INT常量?,postgresql,integer,constants,Postgresql,Integer,Constants,在Java中,我可以说Integer.MAX\u VALUE来获得int类型可以容纳的最大数字 Postgres中是否有类似的常量/函数?我想避免硬编码这个号码 编辑:我问的原因是这个。有一个旧表,其ID类型为integer,后面有一个序列。此表中有许多传入行。我想计算整数用完之前的时间,所以我需要知道“剩下多少ID”除以“我们花费它们的速度”。这没有常数,但我认为在Postgres中硬编码这个数字比在Java中更合理 在Java中,哲学上的目标是将Integer作为一个抽象值,因此您可能希望表

在Java中,我可以说
Integer.MAX\u VALUE
来获得
int
类型可以容纳的最大数字

Postgres中是否有类似的常量/函数?我想避免硬编码这个号码


编辑:我问的原因是这个。有一个旧表,其ID类型为
integer
,后面有一个序列。此表中有许多传入行。我想计算整数用完之前的时间,所以我需要知道“剩下多少ID”除以“我们花费它们的速度”。这没有常数,但我认为在Postgres中硬编码这个数字比在Java中更合理

在Java中,哲学上的目标是将
Integer
作为一个抽象值,因此您可能希望表现得好像不知道最大值是什么


在Postgres中,你更接近裸机,
integer
类型的定义就是这样。

不,没有这样的常量,它应该在哪里?数据库中没有预定义的“类”,例如
Integer
。如果需要,可以编写一个简单返回的函数2147483647@a_horse_with_no_name好吧,SQL中有很多预定义的神奇常量,例如postgres:
CURRENT\u TIMESTAMP
。对我来说,拥有一个
MAX\u-INT
/
INT\u-MAX
似乎一点都不不不合适。或者,就这一点而言,一个C风格的
sizeof()
函数。SQL中的这些预定义函数都没有公开实现细节。SQL实际上并不处理诸如
sizeof()
之类的低级信息,因为SQL的目标是让您不再需要了解这些信息。您可以查询值的大小,但不能查询数据类型的大小。真正的问题是:你为什么认为你需要它?你试图用它来解决的根本问题是什么?@a_horse_,其名称经过编辑以添加我的问题的原因。你为什么不将该列更改为
bigint
?但要检查是否正在“运行”,只需使用硬编码值即可。这一点在短期内不会改变。int的大小也是用C抽象的,Postgres就是用C编写的。Postgres
integer
与C
int
是不同的。对不起,我不是想说这是博士后的摘要。Postgres独立定义其整数限制。我想你误解了Java,将
int
4个字节作为他们的核心设计决策之一,因为(好吧)他们不希望在C/C++中有任何与不同大小的
int
s相关的错误(这实际上是由于C/C++编译器所针对的CPU体系结构的多样性)如果Java打算将
int
作为一个抽象值,那么它们就不会有
long
s和
short
s等。