データベースの 1 つを myisam から innodb に移行したいと考えています。主な理由は、私のアプリケーションが参照整合性を尊重できるようにすることです。
これは私がしたことです
- 現在の myisam データベースをエクスポートしました
- データベースを削除しました
- innodb データベースに切り替えましたhttp://parasjain.net/2010/06/08/how-to-switch-to-innodb-database-in-mysql/
- エンジン スイッチを確認し、新しいデータベースを作成しました
参照整合性が機能するようになりました。たとえば、Parent p1 と Child c1 を作成し、c1 で p1 を参照する場合、P1 に依存する子がある限り、P1 を削除できません。
ここまでは順調ですね
しかし、エクスポートされたダンプから古いデータをインポートすると問題が発生します
問題は、新しいデータに対して参照整合性が尊重されることです。しかし、私の既存のデータでは、c2 によって参照される p2 のような関係がある場合、p2 を削除して参照整合性を壊すことができます。c2 は現在孤立しています。
既存のデータにも参照整合性が適用されるように、テーブルを修復/再インデックス化する方法はありますか?