我很难理解“删除级联” 如果我有以下示例:
创建表X(id int主键,名称为char(10));
创建表Y(bid int主键,在删除级联上辅助引用A(id));
X包含一行(111,'Mike')
Y包含两行(1000,111),(2000,111)**
如果在表Y中删除了行(2000,111)会发生什么?
该行是否会被删除,或者甚至允许我删除任何内容,因为引用了父表?
由于
答案 0 :(得分:3)
它将被删除,不会发生任何其他事情。级联删除仅从引用的表到引用表。 因此,表X上的删除会将删除级联到表y,而表y上的删除对表x没有影响。
答案 1 :(得分:2)
不会发生任何事情,只有从表X中删除一行时,表Y中引用它的行才会被删除。
答案 2 :(得分:2)
ON删除级联选项如果对子表执行任何删除,则不会生效。此选项用于指定在删除父表中的行时,数据库服务器还会删除子表中与该行(外键)关联的所有行。级联删除功能的主要优点是它允许您减少执行删除操作所需的SQL语句数量。