2014-04-05 80 views
0

我试图将myisam表转换为innodb,因为我对myisam表级别的锁感到沮丧,并且我迫切需要解决此问题。我尝试从phpmyadmin并选择引擎从下拉到innodb,并点击去,但我得到这个错误。在我的表中有500万行。无法从myisam转换为innodb

SQL query: Edit Edit 

    ALTER TABLE `tableA` 
     ENGINE = InnoDB; 

    MySQL said: Documentation 
    #1071 - Specified key was too long; max key length is 767 bytes 

有什么办法,我可以通过一次选择100列,因此当我运行的代码/脚本的几个时间整个表将被转换为InnoDB的转换表。

请指导

回答

0

问题是您的主键列对于InnoDB来说太长了。首先根据您存储的数据将此表的主键列的长度更改为合理的值。

+0

我有两个主键,一个是id,它是自动增量,另一个是标题,我试图从主键中删除标题,但出现错误,我运行此代码来更改主键alter table'tableA' drop主键 – Priya

+0

什么是Primaery Keys的长度设置为?另外,InnoDB中不能有任何'TEXT'主键/索引。 – phoops

+0

是标题列是文字,所以我应该改变它为varchar? – Priya