SQL刪除多表關聯數據的三種方法


1.級聯刪除

sql server版:

 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 ) 

 mysql版本:

 

create table a(
id varchar(20) primary key,
password varchar(20) not null);

create table b(
id int primary key auto_increment,
name varchar(50) not null,
userId varchar(20),
foreign key(userId) references a(id) ON DELETE CASCADE ON UPDATE CASCADE);

 

表B創建了外碼userId 對應A的主碼ID,聲明了級聯刪除

測試數據:

sql server版:

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');

 mysql版本:

insert a values ('11','aaa');
insert a values('23','aaa');
insert into b(name,userId) values('da','11');
insert into b(name,userId) values('das','11');
insert into b(name,userId) values('ww','23'); 


刪除A表內id為‘11’的數據,發現B表內userId 為“11”也被數據庫自動刪除了

delete a where id='11'

 

2.采用存儲過程
 
A表:
AID   Aname                                 主健:AID
B表:
BID   BelongAID Bname               主健:BID,外健:BelongAID 
C表:
CID BelongBID Cname                  主健:CID,外健:BelongBID
D表:
DID BelongCID Dname                  主健:DID,外健:BelongCID
其中:
A表和B表通過A.AID和B.BelongAID  創建了外健關系
B表和C表通過B.BID和C.BelongBID  創建了外健關系
C表和D表通過C.CID和D.BelongCID  創建了外健關系

 

3.采用觸發器




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM