2016-02-17 2 views
0

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

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; 

И это 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; 

, где проблема ???

ответ

1

Перед тем, как запустить ваш запрос

Выполнить это:

SET FOREIGN_KEY_CHECKS=0; 

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

SET FOREIGN_KEY_CHECKS=1; 

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

 Смежные вопросы

  • Нет связанных вопросов^_^