【问题标题】:I'm crazy trying to solve an error, but i can't. With mysql. Foreign key error while doing INSERT INTO.我很想解决一个错误,但我做不到。用 mysql。执行 INSERT INTO 时出现外键错误。
【发布时间】:2013-05-22 17:50:39
【问题描述】:

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

INSERT INTO Comandes_Productes(Id_Comanda, Id_Producte) VALUES ('60', '10009') --> (或其他值)

例如,我收到以下错误消息:#1452 - 无法添加或更新子行:外键约束失败(cafeteria.comandes_productes,CONSTRAINT comandes_productes_ibfk_2 FOREIGN KEY (Id_Producte) REFERENCES @ 987654329@(Id_Comanda)更新级联)

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

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,我也尝试删除所有数据库并创建其他时间,但是.. 什么都没有...我看到表的规格也都相同。

我在什么方面失败了?请帮我!我无法继续我的项目...

【问题讨论】:

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


    【解决方案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,但可能你在输入数值时不应该使用单引号。

    【讨论】:

    • 天啊...我浪费了很多时间,这是...一个非常愚蠢的错误... :(。非常感谢你,YK1
    猜你喜欢
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多