Oracle触发器:A表数据插入B表

createorreplacetriggerAB_DML_TGRafterinsertonCARUSER_FINANCEforeachrowdeclareV_NUMnum... create or replace trigger AB_DML_TGR
after insert
on CARUSER_FINANCE
for each row

declare
V_NUM number;
begin

V_NUM := 0;

select count(*) into V_NUM from ARREARAGE_MANAGER M

where M.CARUSER_ID= :new.caruser_id;

if V_NUM = 0 then
if inserting then
具体问题描述:
A表和B表字段完全相同,A表中插入数据且A表中status=1时该数据插入到B表中,数据在B表中当字段status=0时就执行删除该条数据
=====================================================
下面是我写的代码,现在实现了A表中的数据全部插入到B表中了,其实应该有一个status=1在插入B表中,这我没实现,还有一个是当B表status=0时,该数据就删除了,这个我也没实现,有会的大神们帮帮忙
insert into ARREARAGE_MANAGER
values
(:new.ID,
:new.CARUSER_ID,
:new.finance_status,
:new.balance,
:new.data_status,
:new.create_time,
:new.update_time,
:new.end_time,
:new.mes_owner,
:new.u_owner
);
end if;
elsif :new.finance_status=0 then
delete ARREARAGE_MANAGER t where t.finance_status=0;
end if;

end;
展开
 我来答
renfengjun1986
2016-09-21 · 知道合伙人软件行家
renfengjun1986
知道合伙人软件行家
采纳数:925 获赞数:1553
中国地质调查局特聘数据库专家 CSDN博客专家 百度知道数据库行家 炼数成金版主 想了解更多请关注我的博客:

向TA提问 私信TA
展开全部
问题:
当a表status=1
b表没有数据怎么处理
b表有数据status=0怎么处理
b表有数据status=1怎么处理

当a表status=0
b表没有数据怎么处理
b表有数据status=0怎么处理
b表有数据status=1怎么处理
追问
当A表status=1时插入到B表中,B表中的status刚从A中插入B中时肯定是1,但是B表中的数值会发生改变,如果变成0时就执行删除B表该条数据
追答
那你应该建立两个触发器,一个是a表的。 一个是b表的。 
b表需要重命名,然后建立一个select * from b的视图。
在视图上建立一个instead of 触发器,在执行更新的时候转化为删除语句。
直接触发器转化update为delete是不可以的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式