SQL级联更新,级联删除

级联删除:当我们没有对键加级联删除的时候,删除主键表中的数据(外键表有引用的数据)时,会报错,不能删除,必须先把相关联的外键数据
            删除了,才能删除主键表的数据,但如果新建外键的时候设置了级联删除,那么当我们删除主键表的数据时,数据库就会自动帮我们把相
            关联的外键表数据删除掉,这个好理解
级联更新:一直困扰我,级联更新有什么用,是更新什么东西呢,今天做了个测试(mssql),终于搞清楚了一点,我们修改主键表中和外键表进
            行关联的字段(一般是主键表的主键,mssql好像必须是主键),如果我们没有设置级联更新,那么这个时候会提示不能更新,因为外键表
            还有数据正在和这条数据进行关联,但是如果设置了级联更新,那么外键表的数据会自动帮我们更新

级联的作用:
1,级联删除:比如我们的新闻有评论,新闻被删除了,那么评论自然也没用了,这个时候,就可以设置级联删除让数据库帮我们删除评论,这个用法用的比较常见,
                  当然不是每个地方都适
2,级联更新:这个一下想不到哪里有很大用处,平常即使设置了,也没见哪里体现出来。
                  不过有一种情况个人觉得到是可以考虑,比如说有一个需求,用户注册时用户名要唯一,但是以后可以修改用户名(当然也要是唯一的),这个时候,
                  可以这样设计,用户表直接用用户名来作为主键存储,然后其他表使用用户名来进行外键关联,设置级联更新,这样可以实现需求,同样可以避免因为
                  要得到用户名(系统中很多地方需要得到用户名)而进行的关联查询,比如一个文章列表,只需要显示文章名称,作者名称,而我们直接在文章表里面有个
                  用户名字段和用户名进行了关联,这样就不用去和用户表进行关联查询了,当然,如果还需要用户的其它的信息的话,那还是得去关联查询的

你可能感兴趣的:(sql)