huifeideluotuo
转换表引擎的时候出现“Error Specified key was too long”?
现在使用的这个表是MYISAM引擎,考虑到该表的读取和写入比较频繁,数据表总是损坏,所以现在想把该表转换成INNODB引擎,在转换的过程中,出现以下错误提示:
[color=black]在转换数据表引擎的时候,出现:[/color]
[color=red]Can't convert link_pix_200707: Error Specified key was too long; max key length is 767 bytes。[/color]
[color=#ff0000][/color]
[color=#ff0000]该表目前结构:[/color]
-- 表的结构 `link_pix_200707`
--
CREATE TABLE `link_pix_200707` (
`photo_id` bigint(20) NOT NULL,
`owner_id` bigint(20) NOT NULL DEFAULT '0',
`domain` varchar(255) NOT NULL,
`referer_url` text NOT NULL,
PRIMARY KEY (`photo_id`,`referer_url`(300)),
KEY `owner_id` (`owner_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
通过测试大概是由于联合索引的字段长度过长引起的,如果我们主索引删除就可以成功转换,但是转换INNODB成功后,又不能添加该索引?
兄弟们帮忙看看,有什么好的解决方案?
谢谢了!