MySql上删除级联的概念? [英] MySql on delete cascade concept?

查看:112
本文介绍了MySql上删除级联的概念?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试找出级联删除的工作方式.我知道一般概念,但不知道具体细节.

I am trying to figure out how cascade delete works. I know the general concept but not the specifics of it.

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

I have 3 tables (a)||---|<(B)>o---||(C)

表A:

Aid
Tag

表B:

Aid (f)
Cid (F)

表C:

Cid
Other

  • 表A中的行必须至少具有对表c的引用,否则应将其删除.
  • 仅当表C尝试创建不存在的标记时,才在表A中创建一行.如果表C删除了该标签,并且表C中没有其他行引用该标签,则应删除该标签.如果表C中的另一行引用了该标签,则不应删除该标签.
  • 如果我将表B [Aid]设置为删除级联,将会:

    If I set Table B [Aid] to delete cascade would it:

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

    推荐答案

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

    If you have set up table B to delete cascade on the foreign key to table A then if a tag get's deleted the corresponding records in Table B will be deleted. Table B deletions will not affect table A since table A does not have any references or foreign keys into table B.

    这篇关于MySql上删除级联的概念?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆