因此,在創建我們的表的過程中,我們沒有足夠關注我們的系統,並且所有表都是使用InnoDB
引擎創建的。這真的只是糟糕的,因爲我們想在一些列上有一個FULLTEXT
索引。帶有外鍵的MySQL更改引擎
所以,現在我想轉換。雖然我在這裏,但我只想將所有表格轉換爲MyISAM
,這樣如果我們在未來添加要編制索引的列,我們就有了這個選項。所以,我有我有以下.sql文件:
ALTER TABLE tableName1 Engine = MyISAM;
ALTER TABLE tableName2 Engine = MyISAM;
然而,當我嘗試運行它,我得到以下錯誤:
Error Code: 1217 Cannot delete or update a parent row: a foreign key constraint fails
正如你可能已經猜到了,我們有外鍵在我們的表中。不是我的風格,也不是我的部門,也不是我的創作劇本。
我的問題歸結爲,有沒有辦法改變這些表上的引擎而不必擦拭數據庫?
編輯:請注意,這將需要在數據庫的多個開發和測試副本上完成,所以我可以腳本的東西肯定是首選。
可以去除FKS而不破的應用?或者只是像Solr那樣爲全文索引實現一些更好的東西? – ceejayoz 2012-03-09 02:23:52
@ceejayoz刪除FKs是一個選項,但不是我想要的,因爲我們有很多表。我將不得不通過每個表,找到外鍵並手動刪除它們。這將跨越多個開發和測試服務器。我想要一個方法來做到這一點,而不必這樣做。另外,Solr並不是真正的選擇。 – Ktash 2012-03-09 02:27:15
如果你正在尋找一個簡單的,沒有工作解決方案,我想你會感到失望。 – ceejayoz 2012-03-09 03:41:23