我正在尝试将列的长度从字符变化(40)
更改为字符变化(100)
。
按照本问题Increasing the size of character varying type in postgres without data loss中描述的方法进行操作
ALTER TABLE info_table ALTER COLUMN docs TYPE character varying(100);
尝试使用此命令但返回语法错误
ERROR: syntax error at or near "TYPE" at character 52
此命令需要进行任何更改吗?使用 PostgreSQL 版本 7.4.30(正在升级到 9.2 :))。
我在测试数据库中尝试了相同的命令,该命令现已升级到版本 9.2。那里工作得很好。
最佳答案
在旧版本 7.4 中,无法动态更改列类型。 Check the old manual.您必须添加另一列,使用(可能已转换的)值更新它,然后删除旧列,重命名新列 - 最好在单个事务中。对 View 或其他依赖对象有副作用......
为了完全避免此类问题,我建议对字符数据使用纯文本text
或varchar
(不带长度修饰符)。 Details in this related question.
关于postgresql - 使用 ALTER 语句更改字符不同长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19238949/