2017-11-04 90 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

相关问题