Я пытаюсь преобразовать некоторые из моих таблиц БД из набора символов latin1 в utf-8. Многие таблицы были преобразованы нормально, но некоторые таблицы возвращают эту ошибку:
изменить таблицу XYZ конвертировать в набор символов UTF8;
ОШИБКА 1118 (42000): слишком большой размер строки. Максимальный размер строки для используемого типа таблицы, не считая BLOB, составляет 65535. Некоторые столбцы необходимо изменить на TEXT или BLOB
Есть ли способ обойти это? Какие минимальные размеры столбцов я должен иметь в таблицах, чтобы преобразование происходило без проблем? А также, как я могу изменить столбцы, которые мне нужно изменить, не разбивая данные в таблице?
Вот, кстати, таблица.
mysql> describe trailheads;
+-----------------------+----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+----------------+------+-----+---------+----------------+
| trailhead_id | int(10) | NO | PRI | NULL | auto_increment |
| trail_id | int(10) | YES | | NULL | |
| park_id | int(10) | YES | | NULL | |
| editor_member_id | int(10) | NO | | NULL | |
| trailhead_name | varchar(1000) | NO | | NULL | |
| trailhead_description | varchar(20000) | YES | | NULL | |
| parking | tinyint(1) | YES | | NULL | |
| parking_spots | int(5) | YES | | NULL | |
| is_free | tinyint(1) | YES | | NULL | |
| cost_details | varchar(5000) | YES | | NULL | |
| lat | float(9,6) | NO | | NULL | |
| lng | float(9,6) | NO | | NULL | |
| bathrooms_nearby | tinyint(1) | YES | | NULL | |
| wheelchair_accessible | tinyint(1) | YES | | NULL | |
| date_added | date | NO | | NULL | |
| last_edit_date | date | YES | | NULL | |
+-----------------------+----------------+------+-----+---------+----------------+