2013-05-27 55 views
0

在MySQL中,當我嘗試做:我瘋了,試圖解決一個錯誤,但我不能。用mysql。執行INSERT INTO時出現外鍵錯誤。

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

例如,我得到此錯誤消息:#1452 - 不能添加或更新子行,外鍵約束失敗(cafeteriacomandes_productes,約束comandes_productes_ibfk_2外鍵(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」 在foreing鍵的值。所有的表都與InnoDB一起,我也嘗試刪除所有數據庫並創建其他時間,但是沒有...我看到表格的規格也都一樣。

在我失敗了嗎?請幫幫我!我不能繼續我的項目...

回答

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 ,但是輸入數值時可能不應該使用單引號。

+0

OMG ...我失去了很多時間,這是一個非常非常愚蠢的錯誤... :(。謝謝你很多,YK1 – jordi159

+0

很高興幫助。乾杯! – YK1

相關問題