postgres的新手。
我有一个名为" customer_id"在Postgres中,目前定义为"字符变化"。
查看数据库,很多行都是NULL。
我需要此列为具有可能NULL值的INTEGER 我怎么能在postgres中做到这一点?
我尝试运行查询:
alter table leads alter column customer_id type INTEGER using CAST("customer_id" as INTEGER);
但是我收到一个错误说:
default for column "customer_id" cannot be cast automatically to type integer
答案 0 :(得分:3)
据我了解,您需要将“字符变化”列转换为INTEGER。
您似乎拥有此“字符变化”列的默认值,而postgres无法“附加”INTEGER
类型的值。
如果是这样,您可以先删除默认值,将列转换为INTEGER并添加适用于INTEGER
类型的默认值。像这样:
alter table leads alter customer_id drop default;
alter table leads alter column customer_id type INTEGER using CAST("customer_id" as INTEGER);
alter table leads alter customer_id set default <YOUR DEFAULT VALUE HERE>;