mysql - 错误: Cannot delete or update a parent row: a foreign key constraint fails

标签 mysql foreign-keys

我有 2 个表:RubricsDocumentDocuments。在 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/

相关文章:

sql - 如何将 UPDATE CASCADE 添加到 Rails-Postgres 迁移中?

php - 如何更新其他相关表中的主键/外键?

php - PDO 查询返回空

mysql - 无法添加外键

sql - 以编程方式确定SQL中所需的JOIN语句系列

symfony - 在 Doctrine 迁移中禁用外键

mysql - 是否可以通过主键匹配 INSERT ... SELECT 查询插入的新旧行

mysql - 使用 mybatis 在 "point"列上插入数据

php - 在 Mysql 存储过程中,我试图插入一个不在任何表中的额外参数

mysql - RHEL6服务器的系统时区对MySQL复制有什么影响?