2015-06-16 29 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文件導入數據。