1

我们将数据库存储在 aruba (mysql.aruba.it) 中,其中有一个名为“task”的表。由于需求发生了许多变化,我们决定删除该表并使用不同的字段和约束从 0 重新创建它。问题是 MySQL/Aruba 不再允许我们创建表。或者更好的是,我们可以只使用引擎 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) 

我不知道为什么这个表会出现这个问题:对于我们拥有的其他表,我们可以删除它们并根据需要多次重新创建它们。有没有办法解决它?

4

1 回答 1

1

并非所有 Aruba 数据库都接受 InnoDB 表;如果 INNODB 为白色(启用)或灰色(未启用),请在控制面板内的“引擎”链接上验证;如果您的数据库不支持 InnoDB 表,您可以免费询问支持 InnoDB 的新数据库,并开具帮助票。

为了将表从 MyIsam 转换为 InnoDB,使用命令 ALTER TABLE 不是一个好习惯,我建议将表导出到 .sql 文件中,创建具有所需结构和 InnoDB 引擎的新表,然后从 .sql 文件导入数据。

于 2015-09-23T09:48:12.020 回答