的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(????????)
我应该使用什么用表达?
很多感谢
答
你不能简单地更改数据类型,因为数据已经出现在列。由于数据类型为String
尽管您输入了macaddr
的有效字符串表示形式,但PostgreSQL无法将其指定为macaddr。因此,现在,PostgreSQL建议您可以使用'USING'表达式将数据转换为macaddr
。
ALTER TABLE mytable ALTER COLUMN mac_column TYPE macaddr USING(mac_column::macaddr)
小心用'macaddr'数据类型,它不支持8字节MAC地址(EUI-64) – Tilo 2016-10-10 18:12:03