Приветствую.
Понадобилось изменить кодировку таблиц БД. Делаю это вот так для конкретной таблицы:
ALTER TABLE
table_name
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
На нескольких таблицах появляется ошибка: "Указан слишком длинный ключ. Максимальная длина ключа составляет 1000 байт". Эмперическим путем понял, что если полю VARCHAR таблицы уменьшить значение с 255 до 249, то кодировка в БД сменится нормально.
Хотелось бы узнать, так как в БД не силен:
а) Почему так происходит?
б) Все ли будет норм, если в таблицах с ошибками при смене кодировки сменю значение на меньшее?
в) Надо ли уменьшить значение с 255 до 249 или на какое-то другое?
г) Почему в одних таблицах меняется, а в других — нет? Тех и у других есть поле VARCHAR 255.