删除具有外键的表的行到其他表

时间:2012-03-08 10:53:28

标签: sql database

我有文件夹表和docs表以及folders_docs表,用于将每个文档映射到一个文件夹。所以我尝试从文件夹表中删除一些行,但当然它会出现如下错误:“无法删除或更新父行:外键约束失败”

如何应对这个问题?

提前致谢...

3 个答案:

答案 0 :(得分:2)

您可以改进使用REFERENTIAL INTEGRITY定义约束(外键)并将文件夹删除传播到 folders_docs 然后转移到文档,但在您的情况下,您必须注意您的设计:文件夹和文档之间存在N:M关系,因此删除文件夹时应停止 folders_docs 的传播表格,否则如果被引用,您将无法在其他文件夹中找到文档。

您使用的是什么SQL产品?

在许多SQL产品(例如SQL Server)中,您可以将 ON DELETE CASCADE 子句添加到 ALTER TABLE ADD CONSTRAINT 部分> DDL来实现这一目标。

答案 1 :(得分:0)

进入数据库图表 - >关系属性 - >插入和更新规范并将删除规则和更新规则同时放入级联,这将允许您自动删除另一个表中的相关行。

答案 2 :(得分:0)

您可以在docs表中添加列文件夹,但不要使用folders_docs

如果关系为1:n

,则保存一个表的管理