的PostgreSQL 9.3:迁移文本列MACADDR型

问题描述:

我有代表一个MAC地址一个文本列的表,但我想使用MACADDR类型,而不是。所以,我想:的PostgreSQL 9.3:迁移文本列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. 

但我不知道作为使用表达的内容:

alter table mytable alter column mac_column type macaddr using(????????) 

我应该使用什么用表达?

很多感谢

+1

小心用'macaddr'数据类型,它不支持8字节MAC地址(EUI-64) – Tilo 2016-10-10 18:12:03

你不能简单地更改数据类型,因为数据已经出现在列。由于数据类型为String尽管您输入了macaddr的有效字符串表示形式,但PostgreSQL无法将其指定为macaddr。因此,现在,PostgreSQL建议您可以使用'USING'表达式将数据转换为macaddr

ALTER TABLE mytable ALTER COLUMN mac_column TYPE macaddr USING(mac_column::macaddr) 
+0

是,有有效的MAC地址对该列表示。所以,这正是我所寻找的。非常感谢! – jorgeas80 2014-11-04 14:47:25

+0

'SELECT'ncjdfbj':: string; 错误:类型“字符串”不存在 ' – dezso 2017-02-03 09:49:20