1

我试图弄清楚级联删除是如何工作的。我知道一般概念,但不知道它的细节。

我有 3 张桌子 (a)||---|<(B)>o---||(C)

表 A:

Aid
Tag

表 B:

Aid (f)
Cid (F)

表 C:

Cid
Other
  • 表 A 中的一行必须至少有一个对表 c 的引用,否则它应该被删除。
  • 仅当表 C 尝试创建不存在的标记时,才会在表 A 中创建一行。如果表 C 删除了该标记,并且表 C 中没有其他行引用该标记,则应删除该标记。如果表 C 中的另一行引用了该标签,则不应删除该标签。

如果我将表 B [Aid] 设置为删除级联,它会:

  1. 如果表 A 中的标签被删除,则会自动删除表 B 中的所有链接
  2. 我从属于 tagz 的表 B 中删除了一行。表 B 中有另一行引用 tagz。该删除是否会导致 tagz 也被删除,或者只要任何行引用它, tagz 就会保留?
4

1 回答 1

5

如果您已将表 B 设置为删除表 A 的外键上的级联,那么如果删除了一个标记 get,则表 B 中的相应记录将被删除。表 B 的删除不会影响表 A,因为表 A 没有对表 B 的任何引用或外键。

于 2013-02-08T02:04:41.147 回答