提问者:小点点

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;

我收到消息:

错误1452(23000):无法添加或更新子行:外键约束失败(sbd14klub_pemain,约束klub_fk外键(id_klub)在更新级联的删除级联上引用klub(id_klub)

请帮帮我:(,,thx:)


共1个答案

匿名用户

在那里我可以对你说两件事。

  1. klub_pemain表中,您将所有列的数据类型定义为int,但当您插入数据时,您将插入字符串。请参阅insert查询的值。值(“152”、“a bjad”、“1998”、“2004”、“50”)
  2. 第二件事是在将数据输入klub_pemain之前,这些引用的数据应该在pemainklub表中。例如,当您将id_klub插入为值152时,此对应的152值行必须在klub表中。