Postgresql Postgres无符号整数主键最大值

Postgresql Postgres无符号整数主键最大值,postgresql,Postgresql,Postgres整数范围为-2147483648到+2147483647。据我所知,在mysql中,可以使用无符号整数作为主键,并在pk从1开始时获得两倍的值(2147483647*2) 如果我不需要负值,我不确定是否有办法将postgres整数范围pk序列从2147483647增加到2147483647*2?我可以把最大值改为2147483647*2吗 < P> > Postgres对未超过2147483647的主键没有考虑,请考虑使用 BigStays/COD>。 < P>可以简单地设置一

Postgres整数范围为-2147483648到+2147483647。据我所知,在mysql中,可以使用无符号整数作为主键,并在pk从1开始时获得两倍的值(
2147483647*2

如果我不需要负值,我不确定是否有办法将postgres整数范围pk序列从2147483647增加到
2147483647*2
?我可以把最大值改为2147483647*2吗


< P> > Postgres对未超过2147483647的主键没有考虑,请考虑使用<代码> BigStays/COD>。

< P>可以简单地设置一个大的最大值,PostgreSQL将使用计数器的相关数值类型。以下是一个例子:


最小值1
最大值123456789012345
从12345678000000开始;
--试几次
选择nextval(“长路”);

如果你真的想要一个整数,你可以得到你想要的数值范围。您只需要记住,生成的键的唯一目的是使行在表中唯一,而不是别的。在那种观点下,负值的效果非常好。所以

create sequence long_wrap_seq as integer
       minvalue -2147483648  
       maxvalue +2147483647 
       start with 1 
       cycle;
     
create table long_wrap_seq(id integer default nextval('long_wrap_seq')
                  , ...
                  );

您现在有一个序列范围为2147483647*2(实际上是+1)。

所以我不能将最大值设置为2147483647*2?@ZiiMakc:只有当您使用
bigint
时,我才需要使用我理解的bigint?是的,您会的。这是一个很小的代价。