![]() |
1
25
直接从 the manual …
编辑: 您可能想看看这个相关的问题: When/Why to use Cascading in SQL Server? . 问题/答案背后的概念是相同的。 |
![]() |
2
0
我有一个PostgreSQL数据库,当我有一个从数据库中删除的用户,我需要从另一个表中删除它的信息时,我使用on delete。这样,我只需要执行1个删除操作,而fk在删除时将从其他表中删除信息。 更新时也可以这样做。如果更新表,并且字段具有“更新时使用”的FK,则如果在FK上进行了更改,则会在FK表上注意到您。 |
|
3
0
道克说的是真的…这可能相当方便。另一方面,让事情在数据库中自动发生可能是一个真正的问题,尤其是在消除数据方面。将来有人可能会指望FK通常会在有孩子的情况下阻止删除父表,并且没有意识到使用on-delete cascade不仅不能阻止删除,而且由于级联删除的瀑布效应,它会使数十个其他表中的大量数据消失。 @亚瑟的评论。 数据库中发生“隐藏”事件的频率越高,任何人对所发生的事情掌握得越少。触发器(这本质上是一个触发器)可以导致我删除一行的简单操作在整个数据库中产生广泛的结果。我发出一条DELETE语句,17个表受触发器和约束级联的影响,而这对命令的发出者来说都不是显而易见的。哦,如果我把删除父对象及其所有子对象的操作放在一个过程中,那么任何人都可以很容易和清楚地看到当我发出命令时会发生什么。 这与我如何设计数据库毫无关系。它与触发器引入的操作问题有关。 |
![]() |
4
0
您可以简单地编写一条警告消息,而不是编写方法来完成级联删除或级联更新的所有工作。比重新设计控制盘要容易得多,而且它使客户机(以及新开发人员)明白了这一点。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 4 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 5 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 5 月前 |
![]() |
Sax · 规范化Google表格(第一步) 5 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 5 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 5 月前 |