我正试图将列的长度从character varying(40)更改为character varying(100)
遵循本问题中描述的方法Increasing the size of character varying type in postgres without data loss

ALTER TABLE info_table ALTER COLUMN docs TYPE character varying(100);

尝试使用此命令,但返回语法错误
错误:字符52处“TYPE”处或附近的语法错误
这个命令需要修改吗?使用PostgreSQL 7.4.30版(升级到9.2 in process:)。
我在test db中尝试了相同的命令,该命令现在已升级到9.2版。那里工作得很好。

最佳答案

在古代版本7.4中不可能动态更改列类型。Check the old manual.您必须添加另一列,用(可能转换的)值更新它,然后删除旧列,重命名新列-最好是在单个事务中。对视图或其他依赖对象有副作用。。。
为了避免这类问题,我建议对字符数据使用普通的textvarchar(不带长度修饰符)。Details in this related question.

10-05 23:53