我们的数据库存储在阿鲁巴(mysql.aruba.it),那里有一个名为"task“的表。由于需求中的许多变化,我们决定删除该表,并使用不同的字段和约束从0重新创建它。问题是MySQL/Aruba不再允许我们创建表。或者更好的是,我们可以只使用engine MyISAM来创建另一个任务表,但是我们需要INNODB,因为我们将在表中使用约束和外键。因此,我尝试创建一个MyISAM表,然后将其转换为INNODB,但得到如下错误:
ALTER TABLE `task` ENGINE = INNODB
#1025 - Error on rename of './Sql689345_4/#sql-6962_1891f' to './Sql689345_4/task' (errno: -1) 我不知道为什么这个表会有这个问题:对于我们拥有的其他表,我们可以删除它们,并根据需要多次重新创建它们。有没有办法解决这个问题?
发布于 2015-09-23 17:48:12
并非所有的阿鲁巴数据库都接受InnoDB表;请在控制面板内的“引擎”链接上验证INNODB是白色的(已启用)还是灰色的(未启用);如果您的数据库不支持InnoDB表,您可以免费请求支持InnoDB的新数据库,开具帮助单。
为了将表从MyIsam转换为InnoDB,使用ALTER TABLE命令并不是一个好的做法,我建议将您的表导出为一个.sql文件,创建一个具有所需结构和InnoDB引擎的新表,然后从.sql文件导入数据。
https://stackoverflow.com/questions/30869527
复制相似问题