【发布时间】:2011-08-21 10:47:39
【问题描述】:
好吧,我在 Stack Overflow 上的问题已经得到了 100 多个答案,但现在是我终于注册并发布我的第一个问题的时候了!
好的,我为我的程序的用户准备了一个表格,并以 1:1 和 1:M 的关系附加了 11 个表格。大多数外键设置为ON UPDATE CASCADE ON DELETE RESTRICT。如果我删除中心表,它允许我这样做,尽管应该有外键。当我之前处理过关系数据库时,我会收到以下错误消息:
#1217 - Cannot delete or update a parent row: a foreign key constraint fails
#1452 - Cannot add or update a child row: a foreign key constraint fails
现在请注意,这是我真正想要错误消息的时间。我想要关系数据库的功能,我所有的表都是 InnoDB。谷歌没有帮助我,我在 MySQL 文档中找不到任何内容。
【问题讨论】:
-
您是从中心表中删除表还是删除一行?
-
你可能想检查是否真的有外键约束
-
检查
foreign_key_checks变量的设置:dev.mysql.com/doc/refman/5.1/en/… -
@ypercube 它让我两者兼得。我还可以使用不在父表中的外键值在子表中插入行。
SHOW VARIABLES给我foreign_key_checks ON。 -
@pif 我从
CREATE TABLE中提取了CONSTRAINT... FOREIGN KEY... ON...,并将其设为ALTER TABLE。还是不行。
标签: mysql foreign-keys relational-database innodb