当行大小太大时如何转换MYSQL UTF-8?

问题描述 投票:1回答:1

我在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

在运行此转换查询之前,是否必须更改表的大小?和/或我怎么可能完成这种编码改变呢?

mysql encoding alter
1个回答
1
投票

我做了@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

© www.soinside.com 2019 - 2024. All rights reserved.