复制一个表到另外一个主机,同时改为MyISAM引擎,没想到创建表时报错了:
#1071 - Specified key was too long; max key length is 1000 bytes
建表sql类似如下:
CREATE TABLE `stock` (
`code` varchar(255) NOT NULL
PRIMARY KEY (`code`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4
之前使用InnoDB引擎没有问题,MyISAM引擎会有key长度的限制,超过1000bytes就会报错,这里的varchar长度255,utf8mb4每个字符按4个字节计算,255x4超过1000了,把varchar长度改小一点就没问题了。