当行大小太大时如何转换MYSQL UTF-8?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当行大小太大时如何转换MYSQL UTF-8?相关的知识,希望对你有一定的参考价值。
我在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
以上是关于当行大小太大时如何转换MYSQL UTF-8?的主要内容,如果未能解决你的问题,请参考以下文章