Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从myisam转换为innodb_Php_Mysql_Innodb_Myisam - Fatal编程技术网

Php 无法从myisam转换为innodb

Php 无法从myisam转换为innodb,php,mysql,innodb,myisam,Php,Mysql,Innodb,Myisam,我试图将myisam表转换为innodb,因为我对myisam表的锁级别感到失望,我迫切需要解决这个问题。我尝试从phpmyadmin中选择引擎,从下拉列表中选择innodb并单击go,但我得到了这个错误。在我的表中有500万行 SQL query: Edit Edit ALTER TABLE `tableA` ENGINE = InnoDB; MySQL said: Documentation #1071 - Specified key was

我试图将myisam表转换为innodb,因为我对myisam表的锁级别感到失望,我迫切需要解决这个问题。我尝试从phpmyadmin中选择引擎,从下拉列表中选择innodb并单击go,但我得到了这个错误。在我的表中有500万行

   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


请参考

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

我有两个主键,一个是id,它是自动递增的,另一个是标题。我试图从主键中删除标题,但出现错误。,我运行此代码来更改主键alter table
tableA
drop primary key主键的长度设置为多少?另外,InnoDB中不能有任何
TEXT
主键/索引。是的,标题列是TEXT,所以我应该将其更改为varchar?现在只有一个键是id int(10),那么我也会得到该错误