引用循环:ON DELETE CASCADE?

Posted

技术标签:

【中文标题】引用循环:ON DELETE CASCADE?【英文标题】:Referential cycle: ON DELETE CASCADE? 【发布时间】:2012-12-16 20:25:30 【问题描述】:

如果“predmet”是“predmeti”的外键,而“nositelj”是“nastavnici",

如果我将 ON DELETE CASCADE 指定给两个外键并删除其中一个实体,会发生什么?它会产生错误吗?

编辑:我使用的是最新版本的 PostgreSQL。

【问题讨论】:

这是一个糟糕的设计,不是所谓的正常形式。 如果您使用并引用图像,如果它是可读的,它可能会有所帮助 What will happen if I specify ON DELETE CASCADE to both foreign keys and delete one of the entities? 我不知道...会发生什么Would it produce an error?我不知道……是吗?你试过什么? 密切相关:***.com/questions/8394177/… 【参考方案1】:

阅读您的 RDBMS 手册(您尚未指定)。通常禁止循环级联 - 创建时会出错。

更新:尝试http://sqlfiddle.com/#!1/24df4/2/0 似乎没有被禁止 - 递归删除。

有人非常好心地贬低了我,因为我已经修复了标签,这使我的帖子不正确)

【讨论】:

我使用的是最新的 PostgreSQL。 @Tool 9.2.2?这是最新的现在,但是阅读这篇文章的人呢?

以上是关于引用循环:ON DELETE CASCADE?的主要内容,如果未能解决你的问题,请参考以下文章

跨 3 个表的 MySQL 外键“ON DELETE CASCADE”

如何在 ALTER TABLE 语句中添加“ON DELETE CASCADE”

1) 不能在 DELETE SET NULL 或 ON DELETE CASCADE 上创建外键 2) 不能在 DELETE CASCADE 上创建外键

为啥我的模型的“on_delete=models.CASCADE”不生成级联外键约束?

on_delete=models.CASCADE级联删除

on_delete=models.CASCADE级联删除