我想将我的一个数据库从myisam迁移到innodb。主要原因是允许我的应用程序遵守参照完整性。从myisam迁移到innodb时的参照完整性问题
这是我做过什么
- 导出当前的MyISAM数据库
- 丢弃数据库
- 切换到InnoDB的数据库http://parasjain.net/2010/06/08/how-to-switch-to-innodb-database-in-mysql/
- 验证的发动机开关,然后创建新的数据库
现在,参照完整性起作用。例如,如果我创建父p1和子c1并在c1中引用p1,则只要存在依赖它的子项,我就不能删除P1。
到目前为止好
但是,当我从导出转储
的问题是,参照完整性很荣幸为新的数据导入旧数据出现问题。但是在我现有的数据中,如果有任何关系像c2那样引用p2,那么我可以删除p2以打破引用完整性。 c2现在是孤儿。
是否有修复/重新索引表的方法,以便对现有数据执行参照完整性?
你可以从'SHOW CREATE TABLE'为两个受影响的相关表发布输出吗? – Mike 2010-07-08 22:53:12