数据库几张表有主外键关系怎么删除

1. trigger ,数据库触发器操作。在数据库完成,
先删子表后删主表,连接数据库次数太多,性能估计不太好。

 

2. 级联删除

在创建表时定义,如下所示的b表:

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'

 

posted @ 2015-12-20 20:32  山河水  阅读(2280)  评论(0编辑  收藏  举报