我想将我的一个数据库从 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,只要有一个 child 依赖它。
到现在为止还挺好
但是当我从导出的转储中导入旧数据时会出现问题
问题是新数据尊重参照完整性。但是在我现有的数据中,如果有任何关系,如 c2 引用的 p2,那么我可以删除 p2 破坏参照完整性。c2 现在是孤儿。
是否有任何方法可以修复/重新索引表,以便对现有数据也实施参照完整性?