SQL如何同时设置更新删除级联
altertablestudentaddconstraintFK_student_class1foreignkey(classid)referencesclass(cla...
alter table student add constraint FK_student_class1 foreign key (classid)
references class (classid) on delete cascade
alter table student add constraint FK_student_class2 foreign key(classid)
references class (classid) on update cascade
我是用SQL语句写的更新删除级联,现在这样写有2个关系名了
我知道在关系图里能设置,但是我想知道SQL语句是怎么写的
能用一句SQL语句同时设置更新删除级联吗? 展开
references class (classid) on delete cascade
alter table student add constraint FK_student_class2 foreign key(classid)
references class (classid) on update cascade
我是用SQL语句写的更新删除级联,现在这样写有2个关系名了
我知道在关系图里能设置,但是我想知道SQL语句是怎么写的
能用一句SQL语句同时设置更新删除级联吗? 展开
2个回答
展开全部
级联删除你可以把它认为是一个触发器,也就是你删除主表中的数据,那么从表中的相关联的也就一起删除了。。。看个例子:======================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'=============================================================级联更新也大同小异。。只是关键字为:on update希望回答对你有所帮助........
(
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'=============================================================级联更新也大同小异。。只是关键字为:on update希望回答对你有所帮助........
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询