2

我正在尝试将列的长度从 更改character varying(40)character varying(100)

按照这个问题中描述的方法增加postgres中字符变化类型的大小而不丢失数据

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

尝试使用此命令但返回语法错误

错误:字符 52 处的“TYPE”或附近的语法错误

此命令是否需要进行任何更改?使用 PostgreSQL 版本 7.4.30(正在升级到 9.2 :))。

我在测试数据库中尝试了同样的命令,现在升级到了 9.2 版。它在那里工作正常。

4

2 回答 2

2

在旧版本 7.4 中,无法即时更改列类型。检查旧手册。您必须添加另一列,使用(可能已转换的)值更新它,然后删除旧的,重命名新的 - 最好在单个事务中。对视图或其他依赖对象有副作用......

为了完全避免这种问题,我建议对字符数据使用普通textvarchar(不带长度修饰符)。此相关问题中的详细信息。

于 2013-10-08T04:22:09.990 回答
0

删除单词TYPE,该语法在 10 年前不被识别,但没有它你应该没问题。

于 2013-10-08T04:15:53.417 回答