【问题标题】:MySQL : Cannot add or update a child row: a foreign key constraint fails : 4MySQL:无法添加或更新子行:外键约束失败:4
【发布时间】:2017-11-04 04:06:10
【问题描述】:

如果我插入会出错:

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): 无法添加或更新子行:外键约束失败 (sbd14.klub_pemain, CONSTRAINT klub_fk FOREIGN KEY (id_klub) REFERENCES klub (id_klub ) 在更新级联时删除级联)

请帮助我 :( ,, thx :)

【问题讨论】:

  • 我的猜测是,您在插入语句中提到的一个外键在 klubpemain 表中没有对应的主键。由于您没有发布其他信息,因此您必须自己检查。

标签: mysql visual-studio-code


【解决方案1】:

我可以对你说两件事。

  1. klub_pemain 表中,您将所有列数据类型定义为 INT,但是当您插入数据时,您会插入字符串。查看值 您的插入查询。 VALUES ('152','aBJAD','1998','2004','50')
  2. 第二件事是在将数据输入klub_pemain之前,这些引用的数据应该在pemainklub表中。 例如,当您插入id_klub 作为值152 时,此对应的152 值行必须在klub 表中。

【讨论】:

    猜你喜欢
    • 2015-07-26
    • 2012-10-09
    • 2015-06-06
    • 2016-08-09
    • 2011-03-31
    • 2013-08-10
    • 1970-01-01
    • 2016-05-23
    • 2012-03-14
    相关资源
    最近更新 更多