當前表的存儲類型是innodb,我想在表上添加全文搜索,這隻能在MYISAM
引擎上實現。 我嘗試使用命令=>alter table film engine = myisam;
並得到了錯誤:在Mysql中更改表的存儲引擎
1217 - Cannot delete or update a parent row: a foreign key constraint fails
幫助請! 謝謝。
當前表的存儲類型是innodb,我想在表上添加全文搜索,這隻能在MYISAM
引擎上實現。 我嘗試使用命令=>alter table film engine = myisam;
並得到了錯誤:在Mysql中更改表的存儲引擎
1217 - Cannot delete or update a parent row: a foreign key constraint fails
幫助請! 謝謝。
你必須找到在數據庫中,通過一鍵約束參照此表的表:
標識外鍵約束的表。要麼使用
SHOW CREATE TABLE `table_in_db_film`\G;
或
USE db_of_film_table;
SHOW TABLE STATUS LIKE 'film'\G
,直到你放棄所有約束之後執行的語句進行必要
ALTER TABLE film DROP FOREIGN KEY `ibfk_something`;
(當然代替 ibfk_something與約束名)。在此之後,你應該能夠改變表引擎。
如果不刪除外鍵約束並因此失去完整性,您無法將表的引擎更改爲MyISAM。
使用兩個引擎MyISAM和InnoDB會更好。將所有數據保留在InnoDB中,並在MyISAM中複製該表(或者只是希望成爲全文搜索的列)。這將需要一些機制(觸發器)使數據重複自動化。
此處的其他選項:MySQL storage engine dilemma
然後刪除所有外鍵約束。但是,最好用文本字段創建另一個表格 – zerkms 2012-02-04 09:30:59
您不需要將這些表單更改爲MyIsam引擎就可以更好地創建一個新的MyIsam表格 – 2012-02-04 09:39:11