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.采用觸發器