Я хочу перенести одну из своих баз данных из myisam в innodb.Основная причина - позволить моему приложению соблюдать ссылочную целостность.
Это то, что я сделал
- Экспортировал текущую базу данных myisam
- Удалил базу данных
- Перешел на базу данных innodb http://parasjain.net/2010/06/08/how-to-switch-to-innodb-database-in-mysql/
- Проверено переключение двигателя, затем создана новая база данных
Ссылочная целостность теперь работает.Например, если я создаю Parent p1 и Child c1 и ссылаюсь на p1 в c1, я не могу удалить P1, пока от него зависит дочерний элемент.
Пока все хорошо
Но проблема возникает, когда я импортирую старые данные из экспортированного дампа
Проблема в том, что ссылочная целостность учитывается для новых данных.Но в моих существующих данных, если есть какие-либо отношения, такие как p2, на которые ссылается c2, я могу удалить p2, нарушая ссылочную целостность.c2 теперь является сиротой.
Есть ли способ исправить / переиндексировать таблицы, чтобы обеспечить ссылочную целостность также для существующих данных?