如果update了tableaaa中lastday这个字段的话,不执行插入操作。就是说对update要分3中情况update了account字段的值为1,插入新记录到另一个表--已解决
update了lastday的值,不执行任何操作
其它update操作,插入新记录到另一个表--已解决
CREATE OR REPLACE TRIGGER TR_DML_tableaaa
AFTER INSERT OR UPDATE ON tableaaa
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO HANDLELOG values (TO_NUMBER(to_cha(SYSDATE,'yyyymmddhh)),'Other','AAAA-01-0001','添加用户操作成功【'||:new.ACCOUNT||'】',0);
ELSIF UPDATING THEN
IF (:new.USER_STATUS=2) THEN
INSERT INTO HANDLELOG values (TO_NUMBER(to_cha(SYSDATE,'yyyymmddhh)),'Other','AAAA-01-0003','删除用户操作成功',0);
ELSE
INSERT INTO HANDLELOG values (TO_NUMBER(to_cha(SYSDATE,'yyyymmddhh)),'Other','AAAA-01-0002','修改用户基本信息操作成功【'||:new.ACCOUNT||'】',0);
END IF;
END IF;
END;
update了lastday的值,不执行任何操作
其它update操作,插入新记录到另一个表--已解决
CREATE OR REPLACE TRIGGER TR_DML_tableaaa
AFTER INSERT OR UPDATE ON tableaaa
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO HANDLELOG values (TO_NUMBER(to_cha(SYSDATE,'yyyymmddhh)),'Other','AAAA-01-0001','添加用户操作成功【'||:new.ACCOUNT||'】',0);
ELSIF UPDATING THEN
IF (:new.USER_STATUS=2) THEN
INSERT INTO HANDLELOG values (TO_NUMBER(to_cha(SYSDATE,'yyyymmddhh)),'Other','AAAA-01-0003','删除用户操作成功',0);
ELSE
INSERT INTO HANDLELOG values (TO_NUMBER(to_cha(SYSDATE,'yyyymmddhh)),'Other','AAAA-01-0002','修改用户基本信息操作成功【'||:new.ACCOUNT||'】',0);
END IF;
END IF;
END;
用这两个变量判断字段变化.
如果这条记录不允许修改, 那就自定义个异常出来
如果只是触发器不执行
那你就 if :new.lastday= :old.lastday then
这边执行你的修改
elsif :new.lastday!=:old.lastday then
---这边不写语句就可以了
end if;