我疯狂地试图解决错误,但我做不到。用mysql。执行INSERT INTO时出现外键错误。

时间:2013-05-27 21:03:42

标签: mysql foreign-keys mysql-error-1452

在mysql中,当我尝试这样做时:

INSERT INTO Comandes_ProductesId_ComandaId_Producte)VALUES('60','10009') - > (或其他人的价值观)

例如,我收到此错误消息:#1452 - 无法添加或更新子行:外键约束失败(cafeteriacomandes_productes,CONSTRAINT comandes_productes_ibfk_2 FOREIGN KEY( Id_Producte)参考comandesId_Comanda)ON UPDATE CASCADE)

我尝试做了很多提出下一个链接的解决方案,但是,我也没有解决错误。

Mysql error 1452 - Cannot add or update a child row: a foreign key constraint fails

我会告诉你代码,看看我是否有错误。

创建表:

CREATE TABLE Comandes (  
    Id_Comanda INTEGER(9) AUTO_INCREMENT,  
    Quantitat INTEGER(4),  
    Id_Proveidor INTEGER(9) NOT NULL,  
    Data DATE,  
PRIMARY KEY (Id_Comanda),  
FOREIGN KEY (Id_Proveidor) REFERENCES Proveidors(Id_Proveidor) ON UPDATE CASCADE    
) CHARACTER SET utf8 COLLATE utf8_spanish_ci;  

CREATE TABLE Productes (  
    Id_Producte INTEGER(9) AUTO_INCREMENT,  
    Marca VARCHAR(15),  
    Nom_Producte VARCHAR(30),  
    Preu_Producte FLOAT(4,2),  
    Quantitat INTEGER(4),  
    Descripcio VARCHAR(50),  
Id_Proveidor INTEGER(9),  
PRIMARY KEY (Id_Producte)  
) AUTO_INCREMENT=10001 CHARACTER SET utf8 COLLATE utf8_spanish_ci;  


CREATE TABLE Comandes_Productes (  
        Id_Comanda INTEGER(9),  
        Id_Producte INTEGER(9),  
        PRIMARY KEY (Id_Producte, Id_Comanda),  
FOREIGN KEY (Id_Producte) REFERENCES Productes (Id_Producte) ON UPDATE CASCADE,  
FOREIGN KEY (Id_Producte) REFERENCES Comandes (Id_Comanda) ON UPDATE CASCADE    
) CHARACTER SET utf8 COLLATE utf8_spanish_ci;  

是的,我已经在“Comandes”和“Productes”表中找到了外键值。所有表都是InnoDB,我也尝试删除所有数据库并创建其他时间,但是......没有...我看到表的规格也是一样的。

我失败了?请帮我!我不能继续我的项目...

1 个答案:

答案 0 :(得分:1)

我发现您的Comandes_Productes表有一个问题:

FOREIGN KEY (Id_Producte) REFERENCES Comandes (Id_Comanda) ON UPDATE CASCADE

可能应该是

FOREIGN KEY (Id_Comanda) REFERENCES Comandes (Id_Comanda) ON UPDATE CASCADE

另外,我对MySQL并不多,但在输入数值时,你可能不会使用单引号。