oracle中把父表中的值删掉,则子表中相关的值也删掉,并把删掉的值放入另一个表中

 我来答
百度网友664454771
2012-06-26 · TA获得超过214个赞
知道小有建树答主
回答量:66
采纳率:0%
帮助的人:102万
展开全部
使用级联删除+触发器可以搞定你的需求。
父表A 子表B 备份表C
命令如下:
create table A
(
dept_ID number primary key,
dept_name varchar2(10)
);

create table B
(
no number primary key,
name varchar2(10),
dept_id number
);

ALTER TABLE WWJ.B ADD CONSTRAINT FK_B FOREIGN KEY (DEPT_ID) REFERENCES WWJ.A (DEPT_ID) ON DELETE CASCADE ENABLE VALIDATE;

CREATE OR REPLACE TRIGGER WWJ.TR_B_01
BEFORE DELETE
ON WWJ.B
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
INSERT INTO C VALUES(:old.no,:old.name,:old.dept_id);
END;
水蓝魔瞳
2012-06-25 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:40.6万
展开全部
可以在父表上加触发器,before delete的
先根据条件备份子表数据,然后delete子表数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式