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 的 json 字段中查询字符串和数字字段的有效方法
postgresql copy from 字符串转换为时间类型