2012-01-12 69 views
2

当我导入SQL转储InnoDB引擎,我有一些问题,如:导入SQL转储InnoDB引擎

 
#1005 - Can't create table '.\db_name\table_name.frm' (errno: 121) . 

当使用默认引擎,它的成功运行。

我该如何解决这个问题?


谢谢大家,但目前还没有任何重复/无效的外键,我也有变化 SET FOREIGN_KEY_CHECKS =“0”到“1”; 但没有良好的效果 这里在phpMyAdmin我的错误代码

Error 

SQL query: 

CREATE TABLE `mb_comment` (
`content` text COLLATE utf8_unicode_ci, 
`post_id` int(11) default NULL , 
`user_id` varchar(30) COLLATE utf8_unicode_ci default NULL , 
`id` int(11) NOT NULL AUTO_INCREMENT , 
PRIMARY KEY (`id`) , 
KEY `FK_comment` (`post_id`) , 
KEY `FK_comment2` (`user_id`) , 
CONSTRAINT `FK_comment2` FOREIGN KEY (`post_id`) REFERENCES `mb_post` (`id`) ON DELETE CASCADE ON UPDATE CASCADE , 
CONSTRAINT `FK_comment` FOREIGN KEY (`user_id`) REFERENCES `mb_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE 
) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci; 

MySQL said: Documentation 
#1005 - Can't create table '.\myblog_db\mb_comment.frm' (errno: 121) 

回答

2

听起来像一个无效的外键约束,例如对不存在的记录或表格的引用。

SET foreign_key_checks = 0; 

# IMPORT CODE GOES HERE 

SET foreign_key_checks = 1; 

如果默认引擎是MyISAM数据则:

做的是确保你导入架构/表的完整转储的最好的事情,你也可以通过禁用的外键约束检查尝试导入外键将被忽略,因为它们不受支持。

0

我想这是因为外键的重名。其他引擎然后innodb没有外键引用完整性检查。