将表数据类型从varchar更改为文本PostgreSQL

时间:2009-07-10 07:58:09

标签: postgresql

我遇到问题并在Google上搜索解决方案但找不到任何解决方案。我有一个名为products_199的postgres表,在该表中有一个名为parameter2的列varchar (255)。我想将数据类型更改为text但不知何故我收到以下错误

  

错误:解析器:在字符50处的“TYPE”处或附近解析错误

我的命令如下所示,我想执行

ALTER TABLE products_199 ALTER COLUMN parameter2 TYPE text;

我正在使用PostgreSQL 7.3.4

1 个答案:

答案 0 :(得分:3)

认为该语法仅适用于较新的PostgreSQL版本。

如果您无法更改版本(7.3.4已经很老了),我建议您只需添加一个新列,复制数据,然后删除旧列。那将是最安全的方式。

这样的事情(未经测试,先备份!)

begin; 
alter table products_199 add column parameter2_n text; 
update products_199 set parameter2_n=parameter2; 
alter table products_199 drop column parameter2;
commit;
vacuum;