如何在不丢失数据的情况下更改PostgreSQL数据库中数组的Varchar长度



我尝试使用下面的代码,但引发了"数组处或附近的语法错误"。谷歌搜索了一下,什么也没找到。可以这样做吗?谢谢!

alter table "tablename" alter column "columnname" TYPE ARRAY(VARCHAR(200));

我不清楚你是要增加每个条目的长度,还是数组的长度。

数组声明遵循 datatype[] 的形式 - []使列成为数组,数据类型规范是基类型的规范。

因此,如果要增加每个数组元素的长度,只需声明一个具有更长varchar长度的数组: varchar(200)[]

alter table "tablename" 
   alter column "columnname" TYPE varchar(200)[];

如果要使用 ARRAY 关键字,则需要将其放在数据类型之后:

alter table "tablename" 
   alter column "columnname" TYPE varchar(200) array;

如果你想增加数组的长度(=允许更多的数组元素(,你不需要做任何事情,因为即使你指定了一个数组维度,Postgres 也不会强制执行

最新更新