MySql上删除级联的概念? [英] MySql on delete cascade concept?
本文介绍了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中的另一行引用了该标签,则不应删除该标签.
- 如果删除了表A中的标签,则会自动删除表B中的所有链接
- 我从表B删除了一个属于tagz的行.表B中还有另一行引用了tagz.删除会导致tagz也被删除,还是只要任何行引用tagz都会保留tagz?
如果我将表B [Aid]设置为删除级联,将会:
If I set Table B [Aid] to delete cascade would it:
推荐答案
如果您已设置表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屋!
查看全文