gpt4 book ai didi

PostgreSQL 序列 nextval() 奇怪的行为

转载 作者:行者123 更新时间:2023-11-29 13:19:30 26 4
gpt4 key购买 nike

我正在测试 postgresql 序列(使用 http://sqlfiddle.com 和 PostgreSQL 9.3 我目前没有在本地设置 PostgreSQL),但我看到了奇怪的行为。

创建一个序列

CREATE SEQUENCE counter_seq;
ALTER SEQUENCE counter_seq RESTART 9223372036854775805;

然后从序列中选择下一个值:

SELECT nextval('counter_seq');

结果是 9223372036854776000 超出了 BIGINT 的范围!?!?

序列本身似乎正确更新(在几次选择后它会失败,并显示 ERROR: nextval: reached maximum value of sequence "counter_seq"(9223372036854775807))但是 的结果nextval 在运行时是不正确的。

然后我尝试将序列设置得低得多:

ALTER SEQUENCE counter_seq RESTART 5223372036854775805;
SELECT nextval('counter_seq');

但结果是:

5223372036854776000

在将序列值设为 5000000000000000 之前,我无法获得可靠的行为。

这是 postgresql 错误还是 sqlfiddle?

最佳答案

看起来像是 SQLFiddle 错误或 pgsql 9.3 问题。我在本地 9.6 上没有得到相同的结果,在 http://rextester.com/COJS32891 上也没有给出这样的错误。

关于PostgreSQL 序列 nextval() 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44329085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com