@Aricus

Как исправить ошибку при импорте базы данных MySQL (Cannot add foreign key constraint)?

При импорте базы данных из бэкапа возникает ошибка:
Error at the line 37: ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Аналоги компонентов';

Query: CREATE TABLE `analogs` (
`ID` int(20) NOT NULL AUTO_INCREMENT,
`name` tinytext COLLATE utf8_bin NOT NULL,
`info` tinytext COLLATE utf8_bin NOT NULL,
`provider_id` int(11) DEFAULT NULL,
`component_id` int(11) NOT NULL,
`deleted` tinyint(4) NOT NULL DEFAULT '0',
`create_time` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `component_id` (`component_id`),
KEY `provider_id` (`provider_id`),
CONSTRAINT `analogs_ibfk_2` FOREIGN KEY (`provider_id`) REFERENCES `contractors` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Аналоги компонентов'

MySQL: Cannot add foreign key constraint

Подскажите, пожалуйста, как её исправить? И что нужно исправить в БД, чтобы она не возникала в дальнейшем?
  • Вопрос задан
  • 253 просмотра
Пригласить эксперта
Ответы на вопрос 1
IgorPI
@IgorPI
Если дамп содержит все необходимые данные и не нарушает целостность данных, можно отключить проверку внешнего ключа.

Вы можете отключить проверку внешнего ключа в MySQL, установив для системной переменной external_key_checks значение 0.
SET foreign_key_checks = 0

Точно так же вы можете включить проверку внешнего ключа в MySQL, установив для системной переменной external_key_check значение 1.
SET foreign_key_checks = 1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы