2012-01-12 64 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沒有外鍵引用完整性檢查。