gpt4 book ai didi

mysql - 删除具有外键约束的行

转载 作者:行者123 更新时间:2023-11-30 00:17:09 25 4
gpt4 key购买 nike

我有一个名为“node”的 MySQL 表,其外键名为“parentNodeId”,它引用该表中的另一行;这样,我可以通过外键在其他节点中拥有节点。

好吧,问题是当我想删除该表中的一行时,SQL 错误输出:

Cannot delete or update a parent row: a foreign key constraint fails (PFeCommerce.node, CONSTRAINT FK_857FE84548C76A8E FOREIGN KEY (parentNodeId) REFERENCES node (id))

因此,我转到要删除的行,并将字段“parentNodeId”设置为 NULL 值。但错误仍然发生。

我做错了什么?

最佳答案

问题不是你要删除子节点,而是你要删除的节点是另一个元素的父节点

查看2个案例:

parent node // this one has id = 1
\
child node // this one has parentNodeID set to 1

如果删除子节点,不会出错,因为只有子节点依赖于父节点,没有其他数据依赖于子节点

就你的情况而言:

parent node // id = 1
\
child node // this is the one you want to delete, parentNodeId = 1
\
another child node

现在你正在做什么,是你删除“子节点”,但另一个节点(另一个子节点)在parentNodeId字段中有它的id,所以如果你要删除“子节点”,就会有一个指向非的关系-现有记录,由于key限制导致错误

关于mysql - 删除具有外键约束的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23563380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com