通过以下这个例子来说明我对数据库当中删除表的级联的含义的理解。
现在有一张表,名字叫PTYPES
使用如下语句删除这张表中的数据:
-- 表示删除这张表当中的数据,但是不删除这张表 DELETE PTYPES
但是出现了如下错误:
原因如下:
要删除的这张表PTYPES
的主键PTNAME
,是PRODUCTINFO
的外键
解决方法一:
使用级联,去除两者之间的外键关系。
由于PTYPES
会影响到PRODUCTINFO
,因此在设计这张表的时候,在删除规则当中选择级联。
此时就可以删除成功了。
那么这里的级联是什么意思呢?
我们在查看两张表:
由此说明删除表当中级联的含义:
如果删除了一张表,那么另外一张和它有外键关系的表当中存在外键关系的数据也会被它删除。
这里的删除规则当中如果设置为级联,是最严格的,表示如果删除数据,那么和它相关联的主键,父类的数据也会被删除。如果选择设置Null,则只是把与它相关联的数据设置为Null值,而不是直接删除。