我有 2 个表:RubricsDocument
和 Documents
。在 RubricsDocument
中,我有文档的 id(外键)。我的目标是删除一个文档,但出现错误
Cannot delete or update a parent row: a foreign key constraint fails
出现。我尝试在文档之前删除文档的标题,但不起作用。我不知道我必须做什么才能解决此错误。
http://sqlfiddle.com/#!9/204749 查看表的创建
RubricsDocument Table
-
1450 1 1 245 66
<-- 66 is id of the document
1451 2 1 296 66
1452 3 1 297 66
1453 4 1 298 66
1456 7 1 301 66
最佳答案
I have try to delete rubrics of the document before the document but isn't work
它应该可以工作除非此表中有一列也被另一个表作为外键引用。当您第一次在评论中发布 CREATE
语句时,两个表都有此类引用,但您提供的链接显示了不同的语句。
因此,如果链接包含实际的 CREATE
语句,您可以先删除引用的行,然后再删除 NETENTDOC
中的行。
但是,如果您将 ON DELETE CASCADE
应用于 FOREIGN KEY
:
CREATE TABLE `NETDOCRUB` (
`NETIDDOCRUB` BIGINT(20) NOT NULL AUTO_INCREMENT,
`NETNUPOS` BIGINT(2) NOT NULL,
`NETFGVISIBLE` TINYINT(4) NOT NULL,
`NETIDRUB` BIGINT(20) NOT NULL,
`NETIDENTDOC` BIGINT(20) NOT NULL,
PRIMARY KEY(`NETIDDOCRUB`),
FOREIGN KEY (`NETIDENTDOC`) REFERENCES `NETENTDOC` (`NETIDENTDOC`) ON DELETE CASCADE
);
ON DELETE CASCADE
负责在删除“父”行时删除所有“子”行。
关于mysql - 错误: Cannot delete or update a parent row: a foreign key constraint fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52984574/