4

如果我有以下示例,我很难理解“删除级联”:

创建表 X(id int 主键,名称 char(10));

创建表 Y(出价 int 主键,在删除级联时帮助引用 A(id));

X 包含一行 (111, 'Mike')

Y 包含两行 (1000, 111), (2000, 111)**

如果删除表 Y 中的行 (2000,111) 会发生什么?

该行是否会被删除,或者它甚至允许我因为对父表的引用而删除任何内容?

谢谢

4

3 回答 3

6

它将被删除,不会发生其他任何事情。级联删除仅从被引用表到引用表。因此,对表 X 的删除将级联删除到表 y,而对表 y 的删除对表 x 没有影响。

于 2013-09-16T17:58:16.520 回答
2

什么都不会发生,只有当您从表 X 中删除一行时,表 Y 中引用它的行才会被删除。

于 2013-09-16T17:57:42.820 回答
2

如果您对子表执行任何删除操作,ON Delete cascade 选项不会产生任何影响。此选项用于指定,当您删除父表中的一行时,数据库服务器也会删除子表中与该行(外键)关联的所有行。cascading-deletes 功能的主要优点是它允许您减少执行删除操作所需的 SQL 语句的数量。

于 2013-09-16T17:57:49.677 回答