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

how to change the length of varchar of array in postgresql database without losing data

我尝试使用下面的代码,但引发了 "syntax error at or near array"。谷歌了一圈,没有找到。有可能这样做吗?谢谢!

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

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

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

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

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

如果要使用ARRAY关键字,数据类型后that needs to be put

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

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