Postgres中有一个MAX_INT常量吗?

vek*_*tor 16 postgresql integer constants

在Java中我可以说Integer.MAX_VALUE获得该int类型可以容纳的最大数字.

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

编辑:我问的原因是这个.存在具有类型ID的遗留表integer,由序列支持.此表中有很多传入的行.我想计算integer耗尽前多长时间,所以我需要知道"剩下多少ID"除以"我们花多少钱".

Nat*_*rot 8

对此没有任何常数,但我认为对Postgres中的数字进行硬编码比在Java中进行硬编码更合理.

在Java中,哲学目标是Integer成为一个抽象的值,所以你想要表现得就好像你不知道最大值是什么一样.

在Postgres中,你更接近裸机,integer类型的定义是它是一个4字节的有符号整数.

  • 我认为你误解了 Java,将 `int` 设为 4 个字节是他们的核心设计决策之一,因为(据我所知)他们不希望在 C/C++ 中与不同大小的 `int` 相关的任何麻烦(这实际上是由于 C/C++ 编译器所针对的 CPU 架构多种多样)。如果 Java 打算将“int”作为一个抽象值,那么它们就不会有“long”和“short”等。 (5认同)
  • Postgres ‘integer’ 与 C ‘int’ 不同 (2认同)