两表通过字段关联进行级联删除。

Posted strenghthen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两表通过字段关联进行级联删除。相关的知识,希望对你有一定的参考价值。

 
create table ta(id int not null)
create table tb(id int , aid int)
insert into ta values(1)
insert into ta values(2)
insert into tb values(1 , 1)
insert into tb values(2 , 2)
insert into tb values(3 , 1)
go
 
--一、查看原始数据
--ta表的原始数据
select * from ta
/*
id          
----------- 
1
2
*/
--tb表的原始数据
select * from tb
/*
id          aid         
----------- ----------- 
1           1
2           2
3           1
*/
 
--二、看看没有创建级联删除时的情况(删除ta表id=1的数据,看看是否影响tb表)
delete from ta where id = 1
select * from ta
/*
id          
----------- 
2
*/
select * from tb
/*
id          aid         
----------- ----------- 
1           1
2           2
3           1
*/
 
--三、恢复原始数据,创建级联删除,删除ta表id=1的数据,看看是否影响tb表
insert into ta values(1)
--为ta创建主健
alter table ta add constraint pk_ta_id primary key (id)
go
--为tb创建外健,并指定级联删除
alter table tb add constraint fk_tb_aid foreign key (aid) references ta(id) on delete cascade
go
delete from ta where id = 1
select * from ta
/*
id          
----------- 
2
*/
select * from tb
/*
id          aid         
----------- ----------- 
2           2
*/
 
--删除级联约束
alter table tb drop constraint fk_tb_aid
go
--删除测试表
drop table ta , tb
go

 

以上是关于两表通过字段关联进行级联删除。的主要内容,如果未能解决你的问题,请参考以下文章

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

java连接hbase,需要实现多表关联查询,比如a,b两表其中可以通过字段进行关联,请问如何join查询两个表

oracle 删除关联表数据

oracle 如何快速删除两表非关联数据(脏数据)?

ORACLE中如果两个字段如果能关联的语句怎么写

外键关联的修改 级联 修改表行记录的操作