PostgreSQL ALTER COLUMN TYPE int到bigint的持续时间

时间:2018-12-18 20:18:55

标签: postgresql type-conversion time-complexity postgresql-10

假设我有一个表,该表的idINTEGER GENERATED BY DEFAULT AS IDENTITY

如果将来integer太小并且需要将id类型从integer更改为bigint,我正在寻找如何更改类型的文档。我主要担心更改的时间复杂性,因为当表中的行数接近整数类型可以存储的最大数目时,很可能会发生更改。

以下命令的时间复杂度是多少?

ALTER TABLE project ALTER COLUMN id TYPE BIGINT;

1 个答案:

答案 0 :(得分:2)

此命令将必须重写整个表,因为bigint占用8个字节的存储空间,而不是integer的4个字节。该表将在进行并发访问时被锁定,因此对于大表,您应该为更长的停机时间做好准备。

如果您希望这样做是必要的,请在表仍然很小的情况下尽快执行更改。