【问题标题】:Change the character varying length with ALTER statement?用 ALTER 语句改变字符长度?
【发布时间】:2013-10-08 04:12:30
【问题描述】:

我正在尝试将列的长度从 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 :))。

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

【问题讨论】:

    标签: postgresql database-design types ddl


    【解决方案1】:

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

    为了完全避免这种问题,我建议对字符数据使用普通的textvarchar(没有长度修饰符)。 Details in this related question.

    【讨论】:

      【解决方案2】:

      去掉TYPE这个词,这个语法在10年前是不被识别的,但是没有它你应该没问题。

      【讨论】:

      • 得到了这个 ALTER TABLE info_table ALTER COLUMN docs character varying(100);错误:字符 52 处的“字符”处或附近的语法错误
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      相关资源
      最近更新 更多