【问题标题】:"On Delete Cascade" if deleting a row from the child table如果从子表中删除一行,则为“On Delete Cascade”
【发布时间】:2013-09-20 23:22:08
【问题描述】:

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

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

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

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

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

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

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

谢谢

【问题讨论】:

    标签: mysql sql foreign-keys sqlcommand cascading-deletes


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-19
          • 1970-01-01
          • 2015-12-31
          • 1970-01-01
          • 2015-01-27
          相关资源
          最近更新 更多