如何在sql中实现级联删除

如何在sql中实现级联删除,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

我想做一个简易的单板块的论坛,有帖子表和回复表,回复表里有帖子编号字段和回复编号字段,帖子编号是外键。有一个功能就是管理员把一条留言删除后相应的回复自动删除。请问在sql中如何设置

解析:

也可以用建立关系来实现,打开SQL中的“关系图”->建立关系图,然后选择你要建立关系的表,如果你的主键和外键已经建立好,则会自由关联,如果没有就手工拖一下,接下来就是选择“级联更新相关字段”和“级联删除相关字段”即可。

级联删除你可以把它认为是一个触发器,也就是你删除主表中的数据,那么从表中的相关联的也就一起删除了。。。看个例子:======================create table a\x0d\x0a(\x0d\x0aid varchar(20) primary key,\x0d\x0apassword varchar(20) not null\x0d\x0a)\x0d\x0a\x0d\x0acreate table b\x0d\x0a(\x0d\x0aid int identity(1,1) primary key,\x0d\x0aname varchar(50) not null,\x0d\x0auserId varchar(20),\x0d\x0aforeign key (userId) references a(id) on delete cascade\x0d\x0a)\x0d\x0a表B创建了外码userId 对应A的主码ID,声明了级联删除\x0d\x0a测试数据:\x0d\x0ainsert a values ('11','aaa')\x0d\x0ainsert a values('23','aaa')\x0d\x0ainsert b values('da','11')\x0d\x0ainsert b values('das','11')\x0d\x0ainsert b values('ww','23')\x0d\x0a删除A表内id为‘11’的数据,发现B表内userId 为“11”也被数据库自动删除了,这就是级联删除\x0d\x0adelete a where id='11'=============================================================级联更新也大同小异。。只是关键字为:on update希望回答对你有所帮助........

方法一:

MSSQLSERVER

是支持

级联更新

级联删除

的,你要在建立

外键

的时候,要指定

EP:

alter

table

tb_userroles

add

constraint

FK_TB_USERR_RELATIONS_TB_FUNCT

foreign

key

(gnbm)

references

tb_function

(gnbm)

on

update

cascade

on

delete

cascade

方法二:用数据库触发器


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6694623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存