【问题标题】:Changing a sequence datatype from INT to BIGINT PostgreSQL将序列数据类型从 INT 更改为 BIGINT PostgreSQL
【发布时间】:2021-03-04 12:01:10
【问题描述】:

您好,我有带有一些值的 PostgreSQL 数据库。当我创建表时,我并没有太注意它们的 ID 列。现在,如果我检查这些序列,我会发现其中一些的最大值是 int 类型。如何在不更改数据 ID 的情况下将它们更改为 bigint。我将表中的 ID 字段类型从 int 更改为 bigint。然后 ALTER SEQUENCE public.kvitansiya_id_seq MAXVALUE 9223372036854775807; 命令返回错误如

SQL 错误 [22023]:错误:MAXVALUE (9223372036854775807) 超出 序列数据类型(整数)。

这是 DBeaver 上的序列表的照片。

【问题讨论】:

  • 试试这个ALTER SEQUENCE public.kvitansiya_id_seq as bigint MAXVALUE 9223372036854775807

标签: postgresql integer sqldatatypes bigint


【解决方案1】:

谢谢@akhilesh-mishra。 解决办法

ALTER SEQUENCE public.kvitansiya_id_seq as bigint MAXVALUE 9223372036854775807;

太棒了。

【讨论】:

  • 仅供参考,文档在“data_type”下将ALTER SEQUENCE 拼写出来。
  • 亲爱的 Adrian @adrian-klaver,你是 100% 正确的。我在文档中没有注意到或理解这一点。
  • 你真的需要你的命令中的最大值吗,我试过 ALTER SEQUENCE seq_name as bigint 并自动将最大值设置为你提到的
猜你喜欢
  • 2016-02-03
  • 1970-01-01
  • 1970-01-01
  • 2013-12-19
  • 1970-01-01
  • 2020-06-10
  • 2017-04-23
  • 2017-09-07
  • 2013-08-31
相关资源
最近更新 更多