2017-11-04 86 views
0

我有錯誤,如果我插入:MySQL的:不能添加或更新子行,外鍵約束失敗:4

INSERT INTO klub_pemain (id_klub,id_pemain,tahun_masuk,tahun_keluar,jml_gol) VALUES ('152','aBJAD','1998','2004','50'); 

我寫在Visual Studio代碼和源代碼的MySQL控制檯

第一個表:

DROP TABLE IF EXISTS klub; 
CREATE TABLE klub (
id_klub INT(10) NOT NULL AUTO_INCREMENT, 
nama_klub VARCHAR(15), 
tahun_berdiri INT(10), 
direktur VARCHAR(10), 
CONSTRAINT id_klub_pk PRIMARY KEY(id_klub) 
)ENGINE=innoDB; 

二表:

DROP TABLE IF EXISTS pemain; 
CREATE TABLE pemain(
id_pemain INT(10) NOT NULL AUTO_INCREMENT, 
nama_pemain VARCHAR(10), 
tgl_lahir DATE, 
kota VARCHAR(10), 
CONSTRAINT id_klub_pk PRIMARY KEY(id_pemain) 
)ENGINE=innoDB; 

三表:

DROP TABLE IF EXISTS klub_pemain; 
CREATE TABLE klub_pemain(
id_klub INT(10), 
id_pemain INT(10), 
tahun_masuk INT(10), 
tahun_keluar INT(10), 
jml_gol INT(10), 
INDEX(id_klub), 
INDEX(id_pemain), 
CONSTRAINT klub_fk FOREIGN KEY (id_klub) REFERENCES klub(id_klub) ON DELETE 
CASCADE ON UPDATE CASCADE, 
CONSTRAINT pemain_fk FOREIGN KEY (id_pemain) REFERENCES pemain(id_pemain) ON 
DELETE CASCADE ON UPDATE CASCADE 
)ENGINE=innoDB; 

我得到消息:

ERROR 1452(23000):不能添加或更新子行,外鍵約束失敗(sbd14klub_pemain,約束klub_fk外鍵(id_klub)參考文獻klubid_klub)ON DELETE CASCADE ON UPDATE CASCADE)

請幫我:(,, THX :)

+0

我的猜測是你在insert語句中提到的外鍵在'klub'或'pemain'表中沒有對應的主鍵。由於您沒有發佈其他信息,因此您必須自行覈對。 –

回答

0

在那裏,我可以說兩件事情給你。

  1. 在你klub_pemain表中定義的所有列的數據類型爲 INT,但是當你插入數據插入字符串。請參閱插入查詢的值 。 VALUES ('152','aBJAD','1998','2004','50')
  2. 第二件事是在你輸入數據到klub_pemain之前,這些參考數據應該在pemainklub表中。 例如,當您插入id_klub作爲值152時,此對應的152值行必須位於klub表中。
+0

謝謝:)它的作品...... – ridwanfirdaus96

相關問題