2016-02-17 109 views
0

我試圖創建從一個表到另一個的外鍵,使用的MySQL Workbench提供的工具,但所有我得到的是這樣的錯誤:MySQL工作臺錯誤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;