импорт дампа sql с движком InnoDB - PullRequest
2 голосов
/ 12 января 2012

Когда я импортирую sql dump с движком InnoDB, у меня возникают некоторые проблемы, такие как:

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

Когда он использует Engine по умолчанию, он запускается успешно.

Как я могу решить эту проблему?


Спасибо всем, но нет дубликатов / недействительных внешних ключей, также у меня есть изменения 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 ]

2 голосов
/ 12 января 2012

Походит на недопустимое ограничение внешнего ключа, например, ссылку на несуществующую запись или таблицу.

Лучшее, что нужно сделать, это убедиться, что вы импортировали полный дамп схемы / таблиц, вы можететакже попытайтесь выполнить импорт, отключив проверки ограничений внешнего ключа:

SET foreign_key_checks = 0;

# IMPORT CODE GOES HERE

SET foreign_key_checks = 1;

Если механизмом по умолчанию является MyISAM, внешние ключи будут игнорироваться, поскольку они не поддерживаются.

0 голосов
/ 12 января 2012

Я думаю, это потому, что дублирующее имя внешних ключей. Другой движок, чем innodb, не имеет проверки целостности ссылки на внешние ключи.

...