Я знаю, что было много вопросов по этому поводу, но я думаю, что моя математика верна.
255 * 3 = 765
байтЕсли UNQUE не требует дополнительных 200+ байт на запись, почему это не работает?
mysql> ALTER TABLE entry ADD UNIQUE INDEX (name(255));
ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes
Могу ли я что-нибудь сделать?
EDIT:
Оказывается, лимит 250. Похоже, что для уникальных индексов графики равны 4 байтам, но я не знаю почему.
EDIT 2:
Спасибо Владиславу Вайнтубу, чарсет действительно utf8mb4. Это разгадывает загадку. Я не видел никакой документации по этому изменению.
Я предполагаю, что он строит не уникальный индекс путем неявного усечения поля, что недопустимо для уникальных индексов, поэтому он отказывается.
Если вы снова введете свой комментарий в качестве ответа, я с радостью приму его.
Решение: Укажите utf8, а не utf8mb4 (MySQL Admin не разрешает этого, поэтому создайте таблицу вручную)