我正在测试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?
发布于 2017-06-02 12:41:44
看起来不是SQLFiddle错误就是pgsql9.3问题。我在本地9.6上没有得到相同的结果,在http://rextester.com/COJS32891上也没有出现这样的错误
https://stackoverflow.com/questions/44329085
复制相似问题