我正在尝试将列的长度从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正在进行:))。
我在test db中尝试了同样的命令,现在使用9.2版进行了升级。它在那里工作得很好。
答案 0 :(得分:2)
在古代版本7.4中无法动态更改列类型。 Check the old manual.您必须添加另一列,使用(可能已转换)值更新它,然后删除旧列,重命名新列 - 最好在单个事务中。对视图或其他依赖对象有副作用......
为了完全避免这种问题,我建议使用普通text
或varchar
(没有长度修饰符)来表示字符数据。 Details in this related question.
答案 1 :(得分:0)
删除单词TYPE
,该语法在10年前未被识别,但没有它就应该没问题。