0

嗨,我对 mysql 很陌生,并且已经尝试了一些其他建议的修复这个问题,但没有运气!我正在尝试在表应用程序和客户之间创建一个外键,但是当我运行我的程序时出现错误“ cannot add or update a child row a foreign key constraint fails mysql”。我的程序是一个数据捕获表单,旨在将信息插入数据库。

表模式:

应用表:

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

客户表:

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

我尝试通过几种不同的方式设置外键,例如 alter table application add foreign key(customeremail) references customer(customeremail) alter table customer add foreign key (applicationid) references application(applicationid)

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

4

1 回答 1

0

您应该尝试该语法:

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

这意味着,只有在 table的(至少)一行的列中存在相同的值时,才允许customeremailtable中的列中的值。application applicationidapplication

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

此外,要使其正常工作,您必须在target上有一个索引。在这里applicationapplicationid. 如果不是这种情况,你应该写:

alter table application add index (applicationid)

我的猜测是这不应该是必要的,因为很有可能applicationid是你的PRIMARY KEY.


顺便说一句,正如斯蒂芬在评论中所建议的那样,由于您“对 DB 很陌生”,因此您应该明确地查看有关数据库规范化引用完整性的适当文档。

于 2013-08-08T13:47:44.293 回答