MySQL的:不能添加或更新子行,外键约束失败:4
问题描述:
我有错误,如果我插入: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):不能添加或更新子行,外键约束失败(
sbd14
。klub_pemain
,约束klub_fk
外键(id_klub
)参考文献klub
(id_klub
)ON DELETE CASCADE ON UPDATE CASCADE)
请帮我:(,, THX :)
答
在那里,我可以说两件事情给你。
- 在你
klub_pemain
表中定义的所有列的数据类型为INT
,但是当你插入数据插入字符串。请参阅插入查询的值 。VALUES ('152','aBJAD','1998','2004','50')
- 第二件事是在你输入数据到
klub_pemain
之前,这些参考数据应该在pemain
和klub
表中。 例如,当您插入id_klub
作为值152
时,此对应的152
值行必须位于klub
表中。
+0
谢谢:)它的作品...... – ridwanfirdaus96
我的猜测是你在insert语句中提到的外键在'klub'或'pemain'表中没有对应的主键。由于您没有发布其他信息,因此您必须自行核对。 –