MySQL Workbench ошибка 1452

Я пытаюсь создать внешний ключ из таблицы в другую, используя инструменты, предоставляемые MySQL Workbench, но я получаю только эту ошибку:

ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`mediacom`.`#sql-758_4`, CONSTRAINT `med_agente_ibfk_1` FOREIGN KEY (`id_agenzia`) REFERENCES `med_agenzia` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)
SQL Statement:
ALTER TABLE `mediacom`.`med_agente` 
ADD CONSTRAINT `med_agente_ibfk_1`
  FOREIGN KEY (`id_agenzia`)
  REFERENCES `mediacom`.`med_agenzia` (`id`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION

Больше всего меня смущает линия mediacom,#sql-758_4, поскольку реальный запрос, который я использую:

ALTER TABLE `mediacom`.`med_agente` 
ADD INDEX `med_agente_ibfk_1_idx` (`id_agenzia` ASC)  COMMENT '';
ALTER TABLE `mediacom`.`med_agente` 
ADD CONSTRAINT `med_agente_ibfk_1`
  FOREIGN KEY (`id_agenzia`)
  REFERENCES `mediacom`.`med_agenzia` (`id`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;

Индекс вставляется нормально, а остальное игнорируется, почему?

Это таблица med_agente

CREATE TABLE `med_agente` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(225) DEFAULT NULL,
  `cognome` varchar(225) DEFAULT NULL,
  `disabilitato` tinyint(1) DEFAULT NULL,
  `mod_time` datetime DEFAULT NULL,
  `mod_user` varchar(255) DEFAULT NULL,
  `codmobile` decimal(13,0) DEFAULT NULL,
  `codfisso` decimal(13,0) DEFAULT NULL,
  `id_agenzia` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `med_agente_ibfk_1_idx` (`id_agenzia`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

А это мед_агензия

CREATE TABLE `med_agenzia` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ragSociale` varchar(255) NOT NULL,
  `descrizione` varchar(255) DEFAULT NULL,
  `indirizzo` varchar(255) DEFAULT NULL,
  `citta` varchar(255) DEFAULT NULL,
  `CAP` int(11) DEFAULT NULL,
  `provincia` varchar(255) DEFAULT NULL,
  `tel` int(11) DEFAULT NULL,
  `mail` varchar(255) DEFAULT NULL,
  `codFiscale` varchar(255) DEFAULT NULL,
  `pIVA` varchar(255) DEFAULT NULL,
  `id_azsuper` int(11) DEFAULT NULL,
  `disabilitato` tinyint(1) DEFAULT NULL,
  `mod_time` datetime DEFAULT NULL,
  `mod_user` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

в чем проблема???

1 ответ

Решение

Прежде чем запустить свой запрос

Запустите это:

 SET FOREIGN_KEY_CHECKS=0;

Затем установите его на 1

SET FOREIGN_KEY_CHECKS=1;

после запуска вашего запроса Alter.

Другие вопросы по тегам