PostgreSQL:将序列的最大值设置为更高的值

8

我目前正在将来自RabbitMQ工作程序的数据导入到postgreSQL表中。在此过程中,我收到了以下错误:

4|tiq-work | error: nextval: reached maximum value of sequence "table_id_seq" (2147483647)

table.id 的数据类型为int8(bigint),其范围为9223372036854775807

我尝试使用postgreSQL文档中的以下命令设置最大值:

alter sequence schema.table_id_seq maxvalue 9223372036854775807;

但是我收到了以下错误:

SQL Error [22023]: ERROR: MAXVALUE (9223372036854775807) is out of range for sequence data type

这似乎是因为序列数据类型的范围与整数数据类型相同(2147483647)。

是否有办法强制使它更高?我还有很多数据要加载。


“table”的定义是什么? - wildplasser
13
你试过将它改为bigint吗?执行以下命令:ALTER SEQUENCE table_id_seq AS bigint; - Jeremy
@wildplasser,抱歉,我不太确定你在问什么。 - Prof. Falken
我正在询问使用此序列的表的定义(DDL)。 - wildplasser
@Jeremy 谢谢!问题已解决! - Prof. Falken
1个回答

8

你还需要将序列转换为bigint类型。可以尝试以下代码:

ALTER SEQUENCE "table_id_seq" AS bigint MAXVALUE 9223372036854775807;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接