MySQL Workbench 错误 1452

MySQL Workbench error 1452

我试图使用 MySQL Workbench 提供的工具创建从 table 到另一个的外键,但我得到的只是这个错误:

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_agentetable

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;

这是med_agenzia

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;

哪里出了问题???

在你运行你的查询之前

运行 这个:

 SET FOREIGN_KEY_CHECKS=0;

然后设置为1

SET FOREIGN_KEY_CHECKS=1;

在您 运行 您的 Alter 查询之后。