什么是级联删除?什么是级联更新?什么是级联置空?
外键的级联删除:如果⽗表中的记录被删除,则⼦表中对应的记录⾃动被删除
⽗表——被外键引⽤的表
⼦表——引⽤⽗表中的键作为外键的表
1.解释:
⽗表中删除包含主键值的⾏的操作,该值由⼦表的现有⾏中的外键列引⽤。在级联删除中,删除⽗表中的记录时,同时删除⼦表中外键引⽤此主键的记录。
例:
employee 表中有员⼯的dept_id 引⽤department表中dept_id( 同时为deptartment主键 )作为外键,当department表(⽗表)中⼀个部门被删除,employee表(⼦表)中引⽤这个部门的dept_id作为dept_id的记录也⾃动被删除。
2.语法:
Foreign Key
(column[,...n])
references referenced_table_name[(ref_column[,...n])]
update是什么[on delete cascade]
[on update cascade]
3.注释:
:列名
referenced_table_name:参考的表名称
ref_name:外键要参考的表的主键列
on delete:删除级联
on update:更新级联
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,声明了级联删除
4.测试数据:
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'
5.级联置空:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论