用于在MySQL数据库中存储MAC地址的最佳字段类型是什么?是否应该使用某个分隔符(冒号或破折号)存储,还是应该在没有分隔符的情况下存储?
答案 0 :(得分:29)
使用bigint unsigned(8字节)然后你可以:
select hex(mac_addr) from log;
和
insert into log (mac_addr) values (x'000CF15698AD');
答案 1 :(得分:2)
看看here。通常,CHAR(12)很好,但细节取决于您的需求。或者只使用PostgreSQL,它具有内置的macaddr类型。
答案 2 :(得分:1)
鉴于MySQL不支持用户定义的扩展,它似乎也不支持任意扩展或插件(仅用于存储引擎),最好的办法是将其作为标准符号的ASCII字符串存储为CHAR(17) (例如,使用冒号分隔符)或小BLOB并直接存储字节。但是,对于大多数应用程序来说,字符串符号会更友好。
您可能希望将其与验证它是MAC地址的触发器配对,因为这实际上是在不支持自定义类型的情况下强制实施数据有效性的唯一方法。