将postgresql-bigint中的表列类型更改为字符变化时出错

将postgresql-bigint中的表列类型更改为字符变化时出错,postgresql,alter,Postgresql,Alter,以下是查询: alter table customer_master alter column pk_customer_id type character varying(20); 我收到以下错误消息: 错误:运算符不存在:字符变化>整数提示:否 运算符与给定的名称和参数类型匹配。你可能需要 添加显式类型转换 这里的pk\u customer\u id是此表的主键列。这应该有效 根据文件: 可选USING子句指定如何计算新列 旧的价值观;如果省略,默认转换与 从旧数据类型转换为新数据类型的赋值

以下是查询:

alter table customer_master alter column pk_customer_id type character varying(20);
我收到以下错误消息:

错误:运算符不存在:字符变化>整数提示:否 运算符与给定的名称和参数类型匹配。你可能需要 添加显式类型转换

这里的
pk\u customer\u id
是此表的主键列。

这应该有效

根据文件:

可选USING子句指定如何计算新列 旧的价值观;如果省略,默认转换与 从旧数据类型转换为新数据类型的赋值。USING子句必须是 如果没有从旧到新的隐式或赋值转换,则提供 类型


这对我有用。谢谢问题不仅仅是询问。有一个约束检查pk_customer_id字段是否大于0。因此,在消除约束后,它对我起了作用。
CREATE TABLE customer_master(
  pk_customer_id bigint NOT NULL,
  created_customer_name character varying(200) DEFAULT NULL::character varying,
  fk_deployment_id bigint NOT NULL,
  is_active integer
 )
ALTER TABLE customer_master
ALTER COLUMN pk_customer_id type CHARACTER VARYING(20) 
USING pk_customer_id::VARCHAR; -- add using keyword