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

  • Post author:
  • Post category:其他




错误重现

原来的字段类型是 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 否则会报错。