一部のDBテーブルを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 | |
+-----------------------+----------------+------+-----+---------+----------------+