gpt4 book ai didi

mysql - 创建关系 : #1452 - Cannot add or update a child row: a foreign key constraint fails

转载 作者:行者123 更新时间:2023-11-29 07:05:50 25 4
gpt4 key购买 nike

我试图创建一个新的表关系,但我似乎遇到了一个错误,我不确定为什么。我建立的第一个关系(一对多)是上周建立的,效果很好,也许我从那时起就忘记了正确的程序?

简单说明:我有三张表 - events, music_styles, venues

到目前为止,我以一个场所可以关联多个事件的方式正确链接了事件和场所。我尝试制作一个新表,其中包含每种音乐风格的行和一个将在表“事件”中使用的 ID,以便我可以将每个事件链接到一个音乐风格 ID。

然而这是我得到的错误:

SQL query:

ALTER TABLE events ADD FOREIGN KEY ( MUSIC_STYLE_ID ) REFERENCES nightl7_complete.music_styles ( MUSIC_ID ) ON DELETE NO ACTION ON UPDATE NO ACTION ;

MySQL said: Documentation

1452 - Cannot add or update a child row: a foreign key constraint

fails (nightl7_complete/#sql-2721_c0dcfd, CONSTRAINT #sql-2721_c0dcfd_ibfk_2 FOREIGN KEY (MUSIC_STYLE_ID) REFERENCES music_styles (MUSIC_ID) ON DELETE NO ACTION ON UPDATE NO ACTION) Documentation Error ALTER TABLE events ADD FOREIGN KEY ( MUSIC_STYLE_ID ) REFERENCES nightl7_complete.music_styles ( MUSIC_ID ) ON DELETE NO ACTION ON UPDATE NO ACTION ;

这是我做的程序:)

enter image description here

I uploaded a full sized image here

谢谢大家:)


编辑:

所以我这样做了:

$query = 'SELECT e.* FROM events e '.
'LEFT JOIN nightl7_complete.music_styles ms ON ms.ID = e.MUSIC_STYLE_ID'.
'WHERE ms.id IS NULL';
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}

得到这个:

无效查询:您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“ms.id IS NULL”附近使用的正确语法

最佳答案

您不想将 MUSIC_STYLE_ID 链接到 ID,而不是 MUSIC_ID 吗?

此外,您需要使用 music_styles 中的有效 ID 预填充 MUSIC_STYLE_ID,或者在创建外键之前将它们设置为 null。

要验证这一点,请尝试:

SELECT e.*
FROM events e
LEFT JOIN nightl7_complete.music_styles ms ON ms.ID = e.MUSIC_STYLE_ID
WHERE ms.id IS NULL;

如果该查询返回任何记录,则这些是 events 中的条目,不包含 music_styles 中的相应记录

关于mysql - 创建关系 : #1452 - Cannot add or update a child row: a foreign key constraint fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7274494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com