MySQL 不能用 FK 约束插入
Posted
技术标签:
【中文标题】MySQL 不能用 FK 约束插入【英文标题】:MySQL cannot INSERT with FK constraint 【发布时间】:2012-02-22 17:12:57 【问题描述】:当我尝试插入一些数据时收到以下错误消息:
SQLSTATE[23000]:违反完整性约束:1452 无法添加或 更新子行:外键约束失败 (
database/UserDetails
, 约束UserDetails_ibfk_6
外国 键 (HearAboutID
) 引用UserDetails
(HearAboutID
) 删除 更新级联时级联)
FK 关系如下所示:
我试图输入到UserDetails.HearAboutID
的数据存在于UserHearAbout.UserHearAboutID
... 那为什么不去呢? :(
【问题讨论】:
能否请您包含您正在使用的 SQL?还要仔细检查您是否没有在表之间使用 FK 创建某种循环引用。 【参考方案1】:根据您发布的错误
外键 (HearAboutID) REFERENCES UserDetails (HearAboutID) ON DELETE CASCADE ON UPDATE CASCADE)
(您实际上创建了一个引用同一表和同一列的约束), 我猜你的 FK 约束定义是错误的(应该是
FOREIGN KEY (HearAboutID) REFERENCES UserHearAbout (UserHearAboutID)
ON DELETE CASCADE ON UPDATE CASCADE)
【讨论】:
卫生署!我不敢相信我做到了。小学生错误!非常感谢。以上是关于MySQL 不能用 FK 约束插入的主要内容,如果未能解决你的问题,请参考以下文章
QueryFailedError:在表“graph”上插入或更新违反了外键约束“FK_0e40......”
百万年薪python之路 -- MySQL数据库之 完整性约束