16

用于在 MySQL 数据库中存储 MAC 地址的最佳字段类型是什么?此外,它应该与某个分隔符(冒号或破折号)一起存储还是应该在没有分隔符的情况下存储?

4

3 回答 3

31

使用 bigint unsigned (8 bytes) 那么你可以:

select hex(mac_addr) from log;

insert into log (mac_addr) values (x'000CF15698AD');
于 2010-12-22T23:44:12.490 回答
2

看看这里。一般来说,CHAR(12) 很好,但细节取决于您的需要。或者只使用具有内置 macaddr 类型的 PostgreSQL。

于 2010-12-22T23:17:10.537 回答
1

鉴于 MySQL 不支持用户定义的扩展,它似乎也不支持任意扩展或插件(仅用于存储引擎),最好的办法是将其存储为 CHAR(17) 作为标准符号的 ASCII 字符串(例如,带冒号分隔符),或一个小的 BLOB 并直接存储字节。但是,对于大多数应用程序来说,字符串表示法会更加友好。

您可能希望将其与验证它是 MAC 地址的触发器配对,因为这实际上是在不支持自定义类型的情况下强制数据有效性的唯一方法。

于 2010-12-22T23:23:13.017 回答