我有一个表格,其中文本列代表MAC地址,但我想使用macaddr类型。所以,我试过了:
alter table mytable alter column mac_column type macaddr;
得到了这个错误
ERROR: column "mac_column" cannot be cast automatically to type macaddr
HINT: Specify a USING expression to perform the conversion.
但我不知道使用什么作为USING表达式:
alter table mytable alter column mac_column type macaddr using(????????)
我应该使用什么作为USING表达式?
非常感谢提前
答案 0 :(得分:1)
您不能简单地更改数据类型,因为列中已存在数据。由于数据类型为String
,尽管您输入了macaddr
的有效字符串表示形式,但PostgreSQL不能将其视为macaddr。现在,正如PostgreSQL建议你可以使用'USING'表达式将数据转换为macaddr
。
ALTER TABLE mytable ALTER COLUMN mac_column TYPE macaddr USING(mac_column::macaddr)