您的位置:首页 > 数据库 > Oracle

oracle 触发器:条件判断自动执行某些任务,不仅仅用于自增id

2015-01-23 11:29 274 查看
实现功能:当某张表写入数据时,同时将处理后的数据写入另一张表

create or replace trigger TG_sale_warehousein_gh after
insert ON t_sale_warehousein FOR EACH ROW
declare yes number;
begin

select count(*) into yes from t_sale_warehousein2 t5 where t5.product_code=:NEW.product_code and to_char(t5.warehousein_confirm_date,'yyyy-mm-dd')=to_char(:NEW.warehousein_confirm_date,'yyyy-mm-dd');
if(yes>0) then
update t_sale_warehousein2 set
--product_code=:NEW.product_code,
--product_name=:NEW.product_name,
--plate_code=:NEW.plate_code,
--grade=:NEW.grade,
warehousein_num=warehousein_num+:NEW.warehousein_num,
warehousein_weight=warehousein_weight+:NEW.warehousein_weight
--warehousein_confirm_date=:NEW.warehousein_confirm_date
where product_code=:NEW.product_code and to_char(warehousein_confirm_date,'yyyy-mm-dd')=to_char(:NEW.warehousein_confirm_date,'yyyy-mm-dd');
end if;

if(yes=0) then

insert into t_sale_warehousein2(product_code,product_name,plate_code,grade,warehousein_num,warehousein_weight,warehousein_confirm_date)
values(:NEW.product_code,:NEW.product_name,:NEW.plate_code,:NEW.grade,:NEW.warehousein_num,:NEW.warehousein_weight,:NEW.warehousein_confirm_date);

end if;

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: