2015-06-16 36 views
1

我们的数据库存储在aruba(mysql.aruba.it)中,其中有一个名为“task”的表。由于需求的许多变化,我们决定放弃表格并使用不同的字段和约束从0开始重新创建表格。问题是MySQL/Aruba不会让我们再创建表格。或者更好的是,我们可以只用引擎MyISAM创建另一个任务表,但我们需要INNODB,因为我们将在表中使用约束和外键。所以,我试图创建一个MyISAM表,然后将其转换成INNODB,但我得到这样的错误:Aruba-MySQL:无法创建/更改引擎表= INNODB

ALTER TABLE `task` ENGINE = INNODB 
#1025 - Error on rename of './Sql689345_4/#sql-6962_1891f' to './Sql689345_4/task' (errno: -1) 

我不知道为什么会出现这个问题,此表:用于其它表,我们有我们可以放下它们并根据需要重新创建它们。 有没有办法解决它?

回答

1

并非所有的Aruba数据库都接受InnoDB表;如果INNODB处于白色(啮合)或灰色(分离),则在控制面板内的“引擎”链接上进行验证;如果你的数据库不支持InnoDB表,你可以免费索取一个支持InnoDB的新数据库,并打开一张协助票。

为了表从MyISAM数据转换为InnoDB的,是不是一个好的做法是使用命令ALTER TABLE,我建议你的表导出.sql文件,创建一个新表与所需的结构和InnoDB的引擎,然后从.sql文件导入数据。