我收到此错误,将数据保存到我的数据库时:关键约束失败 - 这是什么意思?
SQLSTATE [23000]:完整性约束违规:1452不能添加或更新子行。 一个外键约束失败(
mydb
samplelist_item
,约束FK_SAMPLELIST_ITEM_SAMPLELIST
外键(samplelist_id
)参考文献samplelist
(samplelist_id
)ON DELETE CASCADE ON UPDATE CASCADE)
不知道是什么问题。
我收到此错误,将数据保存到我的数据库时:关键约束失败 - 这是什么意思?
SQLSTATE [23000]:完整性约束违规:1452不能添加或更新子行。 一个外键约束失败(
mydb
samplelist_item
,约束FK_SAMPLELIST_ITEM_SAMPLELIST
外键(samplelist_id
)参考文献samplelist
(samplelist_id
)ON DELETE CASCADE ON UPDATE CASCADE)
不知道是什么问题。
Ref这将是从问题手册
InnoDB的反对,试图在一个子表创建一个外键值如果在父表中没有匹配候选键值的INSERT或UPDATE操作。当UPDATE或DELETE操作影响父表中具有匹配的子表中的行的键值时,结果取决于使用FOR UPDATE和ON DELETE子句的FOREIGN KEY子句指定的引用操作。 InnoDB支持关于采取行动的五个选项。如果未指定ON DELETE或ON UPDATE,则默认操作为RESTRICT。
但我说它有更新/删除... – EOB 2012-03-01 15:46:11
是的,因为,可能是你的子表有对你的父母的参考,所以它会这样的错误,因为你得到这种情况。 – 2012-03-01 15:52:00
我可以知道你的mysql引擎吗?是innoDB或MyISAM – 2012-03-01 15:22:30
不确定,我将表samplelist和samplelist_item设置为innodb。我的数据库中的一些表格是myisam,我很确定。 – EOB 2012-03-01 15:23:27
你有没有检查innoDb是否支持foreignkey – 2012-03-01 15:25:53