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

标签 postgresql

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

ERROR: parser: parse error at or near "TYPE" at character 50

我要执行的命令如下所示

ALTER TABLE products_199 ALTER COLUMN parameter2 TYPE text;

我正在使用 PostgreSQL 7.3.4

最佳答案

认为语法只在较新的 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; 

关于postgresql - 将表数据类型从 varchar 更改为文本 PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1108289/

相关文章:

postgresql - Docker Compose (TOMCAT + POSTGRES) - Spring Boot 应用程序 : connection issue between containers

SQL插入和更新

ruby-on-rails - 是否可以从数据库中检索 json?

spring - 找不到 maven 依赖项的 Postgresql 驱动程序

postgresql - "psql: could not connect to server: Connection refused"连接远程数据库出错

sql - 返回时差超过阈值的行的查询

postgresql - Symfony2 查询以从假日日历中查找最后一个工作日期

postgresql - 选择按某些列排序但在另一列不同的行

java - 为 Hibernate @ColumnTransformer 打开 JPA 等价物

java - 使用 POSTGRES 和 eclipselink 的 JPA 日期截断组