create or replace trigger TCScenePicClassific
after --触发时间为操作前
INSERT OR UPDATE -- 由二种事件触发
ON SCENE_PIC_CLASSIFIC
FOR EACH ROW -- 行级触发器
declare
vrowCount number(1);
pragma autonomous_transaction;
BEGIN
IF INSERTING THEN
insert into CScenePicClassific
(ScenePicClassificid,picid, ctype, triggertime)
values
(:new.ScenePicClassificid,:new.picid, 0, sysdate);
ELSE
select count(0) into vrowCount from CScenePicClassific where ScenePicClassificid = :new.ScenePicClassificid;
if vrowCount =0 then
insert into CScenePicClassific
(ScenePicClassificid,picid, ctype, triggertime)
values
(:new.ScenePicClassificid,:new.picid,0, sysdate);
else
update CScenePicClassific
set
picid = :new.picid,
ctype = 1,
triggertime = sysdate
where ScenePicClassificid = :new.ScenePicClassificid;
end if;
END IF;
--Add
select count(distinct FOOTCLASSIFICID) into vrowCount from SCENE_PIC_CLASSIFIC where picid=:new.picid;
update scene_pic set CLASSIFICPICCOUNT=vrowCount where picid=:new.picid;
--Add end
commit;
END;