gpt4 book ai didi

mysql - 无法添加或更新子行外键约束失败mysql

转载 作者:行者123 更新时间:2023-11-30 01:24:49 24 4
gpt4 key购买 nike

嗨,我对 mysql 很陌生,并且已经尝试了一些其他建议的修复方法来解决这个问题,但没有运气!我正在尝试在表应用程序和客户之间创建外键,但是当我运行程序时,出现错误“无法添加或更新子行,外键约束失败 mysql”。我的程序是一个数据捕获表单,旨在将信息插入数据库。

表架构:

应用表:

applicationid mediumint(9)
covertype varchar(100)
customeremail varchar(100)

客户:

customeremail varchar(100)
customerfname varchar(100)
applicationid mediumint(9)

我尝试通过几种不同的方式设置外键,例如更改表应用程序添加外键(customeremail)引用客户(customeremail)更改表客户添加外键(applicationid)引用应用程序(applicationid)

但这不起作用,我很感激任何有关如何解决问题的建议

最佳答案

您应该尝试该语法:

alter table application 
add foreign key(customeremail)
references application(applicationid)

这意味着,表 application 中的 customeremail 列中的值仅在 列中存在相同值时才允许 (至少)表 application 一行的 applicationid

根据您的背景,您可以将其视为“指针” - 但关系代数关系是双向的。

此外,要使其工作,您必须目标上有一个索引。这里是application.applicationid。如果情况并非如此,您应该写:

alter table application add index (applicationid)

我的猜测是这没有必要,因为 applicationid 很有可能是您的主键

<小时/>

顺便说一句,正如Stephan在评论中建议的那样,由于您是“数据库新手”,因此您绝对应该查看有关 database normalization 的正确文档和 referential integrity .

关于mysql - 无法添加或更新子行外键约束失败mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18126140/

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