InnoDBでテーブルをMyISAMに変換する最も安全な方法は何ですか?

私のデータベースは現在InnoDBエンジンを使用しています。今では全文検索機能を追加したいので、テーブルをMyISAMに変換したいのです。しかし、そうすることで、すべての外部キーが破壊されます。テーブルエンジンをMyISAMに安全に変更するにはどうすればよいですか?

テーブルをMyISAMエンジンに変更した後、SELECT ... JOINを使用するにはどうしたらいいですか?

ALTER TABLE jobs ENGINE = MyISAM;
Cannot delete or update a parent row: a foreign key constraint fails
6

2 答え

dbのダンプを行い、そのファイルのすべてのテキストをInnoDBからMyISAMに変更して、変更されたファイルをロードすることをお勧めします

6
追加された

私の知る限り、MyISAMは外部キーをサポートしていません( InnoDB の機能MyISAM )。 MySQLはエンジンをMyISAMに変更する前に jobs テーブルを参照するすべての外部キー制約を削除する必要があることを伝えます。

4
追加された
私はテーブルを変換する同じエラーメッセージを持っていたとすぐに、私はすべての外部キーの制約を削除すると、変換は完全に働いた。コハニーが言うとおりです。 (あなたがそれらを削除する前に何をしているか考えてみてください...私の場合、制約は役に立たなかったのですが、ある理由でそこにあるかもしれません(いくつかのアプリケーションが盗まれているとDBの完全性を保証しますか?
追加された 著者 lucaferrario,