您的位置:首页 > 数据库

SQL删除多表关联数据的三种方法

2013-10-21 22:22 281 查看
1.级联删除

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'

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.采用触发器

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: