2010-12-22 130 views
14

在MySQL數據庫中用於存儲MAC地址的最佳字段類型是什麼?另外,是否應該將其與某個分隔符(冒號或短劃線)一起存儲,還是應該在沒有分隔符的情況下進行存儲?MySQL:存儲MAC地址的最佳方法?

+0

定義 '最好的'。你打算如何處理這些數據? – 2010-12-22 23:42:53

+0

這是一個庫存系統。我想我的問題是「大多數人做什麼?」。 – Nick 2010-12-23 00:03:00

+0

感謝您的所有答案!我會做一些試驗。 – Nick 2010-12-23 00:03:18

回答

2

看一看here。通常,CHAR(12)很好,但細節取決於您的需求。或者只是使用PostgreSQL,它有一個內置的macaddr類型。

1

鑑於MySQL不支持用戶定義的擴展,它似乎也不支持任意擴展或插件(僅用於存儲引擎),所以最好的選擇是將它作爲ASCII字符串存儲爲CHAR(17) (例如,使用冒號分隔符)或小BLOB並直接存儲字節。但是,字符串符號對於大多數應用程序來說會更友好。

您可能希望將其與一個驗證其是MAC地址的觸發器配對,因爲這實際上是在不支持自定義類型的情況下強制實施數據有效性的唯一方法。

28

使用BIGINT的無符號(8個字節),那麼你可以:

select hex(mac_addr) from log; 

insert into log (mac_addr) values (x'000CF15698AD');