I';我疯狂地试图解决一个错误,但我能';T使用mysql。执行插入操作时出现外键错误。
在mysql中,当我尝试执行以下操作时: 将值('60','10009')-->(或其他值)插入到I';我疯狂地试图解决一个错误,但我能';T使用mysql。执行插入操作时出现外键错误。,mysql,foreign-keys,mysql-error-1452,Mysql,Foreign Keys,Mysql Error 1452,在mysql中,当我尝试执行以下操作时: 将值('60','10009')-->(或其他值)插入到Comandes_Products(Id_Comanda,Id_Producte)中 例如,我收到以下错误消息:#1452-无法添加或更新子行:外键约束失败(caffeeracomandes_产品,约束comandes_产品
Comandes_Products
(Id_Comanda
,Id_Producte
)中
例如,我收到以下错误消息:#1452-无法添加或更新子行:外键约束失败(caffeera
comandes_产品
,约束comandes_产品
外键(Id_产品
)引用comandes
(Id_-Comanda
)更新级联)
我试着在下一个链接中提出了很多解决方案,但我也没有解决错误
我会给你代码,看看是否有错误
创建表格:
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”和“products”表中有了foreing键的值。所有的表都是InnoDB的,我试图删除所有的数据库并在其他时间创建,但是。。没有什么。。。我看这些表的规格都是一样的
我失败了什么?请帮帮我!我无法继续我的项目…我发现您的
Comandes\u产品表有一个问题:
FOREIGN KEY (Id_Producte) REFERENCES Comandes (Id_Comanda) ON UPDATE CASCADE
也许应该是这样
FOREIGN KEY (Id_Comanda) REFERENCES Comandes (Id_Comanda) ON UPDATE CASCADE
另外,我不太喜欢MySQL,但在输入数值时可能不应该使用单引号。OMG。。。我浪费了很多时间,而且。。。一个非常愚蠢的错误…:)谢谢你,YK1