我在MYSQL数据库上试图将我在latin1中编码的表改为UTF-8。表名是Journalist,有12列列为varchar,最大长度为3000.这是我正在运行的sql。
ALTER TABLE `journalist` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
我收到的错误
行大小太大。使用的表类型(不计算BLOB)的最大行大小为65535.这包括存储开销,请查看手册。您必须将某些列更改为TEXT或BLOB
在运行此转换查询之前,是否必须更改表的大小?和/或我怎么可能完成这种编码改变呢?
我做了@Wrikken建议的。我删除了我的表,并将varchar的max_length属性从3000降低到1500.然后我在新的空表上运行了这个SQL
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
从这里开始,我用备份表重新填充它,使用脚本。
要回答这个问题:降低varchar max_length限制或将varchar字段更改为LONGTEXT或BLOBS