SQL 怎么级联删除语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 怎么级联删除语句相关的知识,希望对你有一定的参考价值。
三个表A→B→C(A对B是一对多,B对C是一对多) 我想删除A表的一条数据后 级联删除B表和 B表多对应的数据 例:就是(删除 火车表 的一条数据) 删除后,会(删除所有的车厢表),删除后, 会删除所有的车厢椅子...... 谢谢大家 急用
参考技术A 方法一:MSSQLSERVER
是支持
级联更新
和
级联删除
的,你要在建立
外键
的时候,要指定
EP:
alter
table
tb_userroles
add
constraint
FK_TB_USERR_RELATIONS_TB_FUNCT
foreign
key
(gnbm)
references
tb_function
(gnbm)
on
update
cascade
on
delete
cascade
方法二:用数据库触发器 参考技术B 记录的级联删除是不是指
有个
父子
关系的表例如
火车表
和
车厢表
如果
火车表的
某条记录删除了,
那么车厢表的
从属于
这个火车的所有记录,都一起, 参考技术C 你是什么数据库,Oracle的话,如果父表和子表之间有外键约束关系,那么可以再删除主表指定的数据的时候,加上ON
DELETE
CASCADE
,当父表记录删除的时候自动删除子表中的相应记录.
sql2000 如何用触发器实现级联删除
参考技术A 下面是在user表上建立触发器的语句,在topic上建触发器的语句类似CREATE
TRIGGER
deleteuser
ON
[dbo].[user]
INSTEAD
OF
DELETE
AS
DECLARE
@id
int;
--把数据类型改成与user_id一致
SELECT
@id=user_id
from
deleted;
DELETE
FROM
UT
WHERE
user_id=@id;
DELETE
FROM
user
WHERE
user_id=@id;
你把级联
DELETE
或
UPDATE取消掉就行了 参考技术B delete
user
where
user_id
in
(select
user_id
from
UT
where
1=1)
delete
topic
where
topic_id
in
(select
topic_id
from
UT
where
1=1)
无须触发器.
直接用子删除语句即可实现.
不知满意否>
如果一定要用
也可以留言给我
继续作答
以上是关于SQL 怎么级联删除语句的主要内容,如果未能解决你的问题,请参考以下文章