Ответ 1
используйте bigint unsigned (8 байт), затем вы можете:
select hex(mac_addr) from log;
и
insert into log (mac_addr) values (x'000CF15698AD');
Какой лучший тип поля используется для хранения MAC-адресов в базе данных MySQL? Кроме того, должен ли он храниться с определенным разделителем (двоеточие или тире) или он должен храниться без разделителя?
используйте bigint unsigned (8 байт), затем вы можете:
select hex(mac_addr) from log;
и
insert into log (mac_addr) values (x'000CF15698AD');
Посмотрите здесь. Как правило, CHAR (12) хорош, но детали зависят от ваших потребностей. Или просто используйте PostgreSQL, который имеет встроенный тип macaddr.
Учитывая, что MySQL не поддерживает пользовательские расширения и не поддерживает произвольные расширения или плагины (только для систем хранения), лучше всего хранить его как CHAR (17) как строку ASCII в стандартная нотация (например, с разделителями двоеточия) или небольшой BLOB и непосредственно хранить байты. Тем не менее, нотация строк будет более дружественной для большинства приложений.
Вы можете связать его с триггером, который проверяет, является ли он MAC-адресом, поскольку это действительно единственный способ обеспечить достоверность данных без поддержки пользовательских типов.