将latin1转换为utf8表的问题

时间:2011-07-14 13:02:23

标签: mysql

我将所有表格的charset latin1转换为utf8时遇到问题。转换了最大表,但有些表显示

  

ERROR 1071(42000):指定密钥太长;最大密钥长度为255   字节

在我的表中,我使用的是具有3个元素的主键。元素长度分别为128,64,128。谁能解决这个问题?高级谢谢你。

我联合了这个表。来自另一个数据库。基表引擎是MYISAM。

1 个答案:

答案 0 :(得分:0)

MySQL中,UTF8个字符最多可占用3个字节。

因此,PK的最大长度可以是(128 + 64 + 128) * 3 = 960个字节,超过引擎允许的255个字节。

顺便说一句,您使用的是什么存储引擎? InnoDB允许767个字节,MyISAM允许1000个字节。