提问者:小点点

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


以下是查询:

alter table customer_master alter column pk_customer_id type character varying(20);

我收到以下错误消息:

错误:运算符不存在:字符变化

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
 )

这里pk_customer_id是这个表的主键列。


共1个答案

匿名用户

这应该能行

按照留档使用

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

ALTER TABLE customer_master
ALTER COLUMN pk_customer_id type CHARACTER VARYING(20) 
USING pk_customer_id::VARCHAR; -- add using keyword