170PostgreSQL 10字段类型从字符串修改成整型,报错column cannot be cast automatically to type integer

Posted zhangchao19890805

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了170PostgreSQL 10字段类型从字符串修改成整型,报错column cannot be cast automatically to type integer相关的知识,希望对你有一定的参考价值。

错误重现

原来的字段类型是 character varying 改成 integer

ALTER TABLE table_name ALTER COLUMN column_name TYPE integer

PostgreSQL 10 报错:

ERROR:  column "column_name" cannot be cast automatically to type integer
HINT:  You might need to specify "USING column_name::integer".
SQL state: 42804

解决方法

确保要修改的字段中没有字符串数据,如果有的话需要设为NULL。

把修改字段的语句改成下面:

ALTER TABLE table_name ALTER COLUMN column_name TYPE integer using column_name::integer;

注意这里必须要有 using column_name::integer 否则会报错。

以上是关于170PostgreSQL 10字段类型从字符串修改成整型,报错column cannot be cast automatically to type integer的主要内容,如果未能解决你的问题,请参考以下文章

从 PostgreSQL 中的字段中提取数字

如何使用postgresql从字段中获取最后10位数字

从 PostgreSQL 的 json 字段中查询字符串和数字字段的有效方法

postgresql copy from 字符串转换为时间类型

postgresql 字符串转date 如下 201610101010 12位varchar 转换为时间类型

PostgreSQL 修改字段类型从int到bigint