sql中级联删除,级联更新是怎么理解的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中级联删除,级联更新是怎么理解的?相关的知识,希望对你有一定的参考价值。

级联删除你可以把它认为是一个触发器,也就是你删除主表中的数据,那么从表中的相关联的也就一起删除了。。。看个例子:======================create table a
(
id varchar(20) primary key,
password varchar(20) not null
)

create table b
(
id int identity(1,1) primary key,
name varchar(50) not null,
userId varchar(20),
foreign key (userId) references a(id) on delete cascade
)
表B创建了外码userId 对应A的主码ID,声明了级联删除
测试数据:
insert a values ('11','aaa')
insert a values('23','aaa')
insert b values('da','11')
insert b values('das','11')
insert b values('ww','23')
删除A表内id为‘11’的数据,发现B表内userId 为“11”也被数据库自动删除了,这就是级联删除
delete a where id='11'=============================================================级联更新也大同小异。。只是关键字为:on update希望回答对你有所帮助........
参考技术A 主外键的用用到的!当你设置主外键时可以选择是否进行级联删除,级联更新;当删除或更新主键表中的记录时,sql会自动删除或者更新该主键所对应外键表中的记录。具体的情况你可以测试一下!

SQL 怎么级联删除语句

三个表A→B→C(A对B是一对多,B对C是一对多)
我想删除A表的一条数据后 级联删除B表和 B表多对应的数据

例:就是(删除 火车表 的一条数据) 删除后,会(删除所有的车厢表),删除后, 会删除所有的车厢椅子......

谢谢大家 急用

方法一:
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
方法二:用数据库触发器
参考技术A 你是什么数据库,Oracle的话,如果父表和子表之间有外键约束关系,那么可以再删除主表指定的数据的时候,加上ON DELETE CASCADE ,当父表记录删除的时候自动删除子表中的相应记录. 参考技术B 级联删除在建表的时候就应该指定。 参考技术C 触发器中处理

以上是关于sql中级联删除,级联更新是怎么理解的?的主要内容,如果未能解决你的问题,请参考以下文章

如何理解access设置中的“级联更新”和“级联删除”?

SQL 怎么级联删除语句

SQL 怎么级联删除语句

SQL数据库怎么进行多表级联更新,求个存储过程

sql级联更新和级联删除不起作用

数据库中啥是“级联更新关联字段”和“级联删除关联字段”