oracle触发器 当表修改指定字段时,把那条记录插入到记录修改表中

create or replace trigger "TR_SALE_MY_CUSTOMER_UPDATE"
  before update on sale_my_customer
  for each row


begin
  --客户联系人电话   
  if :old.CONTACT_PHONE <> :new.CONTACT_PHONE then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       '联系人电话',
       'contact_phone',
       :old.CONTACT_PHONE,
       :new.CONTACT_PHONE,
       :new.UPDATE_BY,
       sysdate);
    --DATA_MODIFY_LOG
  end if;
  --客户联系人职位
  if :old.CONTACT_POST <> :new.CONTACT_POST then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       '联系人职位',
       'CONTACT_POST',
       :old.CONTACT_POST,
       :new.CONTACT_POST,
       :new.UPDATE_BY,
       sysdate);
  end if;
  --客户公司地址
  if :old.CUSTOMER_ADRESS <> :new.CUSTOMER_ADRESS then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       '客户公司地址',
       'CUSTOMER_ADRESS',
       :old.CUSTOMER_ADRESS,
       :new.CUSTOMER_ADRESS,
       :new.UPDATE_BY,
       sysdate);
  end if;
  --客户邮箱
  if :old.EMAIL <> :new.EMAIL then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       '邮箱地址',
       'EMAIL',
       :old.EMAIL,
       :new.EMAIL,
       :new.UPDATE_BY,
       sysdate);
  end if;
  --客户类型
  if :old.CUSTOMER_TYPE <> :new.CUSTOMER_TYPE then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       '客户类型',
       'CUSTOMER_TYPE',
       :old.CUSTOMER_TYPE,
       :new.CUSTOMER_TYPE,
       :new.UPDATE_BY,
       sysdate);
  end if;
  --客户所属行业
  if :old.CUSTOMER_INDUSTRY <> :new.CUSTOMER_INDUSTRY then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       '客户所属行业',
       'CUSTOMER_INDUSTRY',
       :old.CUSTOMER_INDUSTRY,
       :new.CUSTOMER_INDUSTRY,
       :new.UPDATE_BY,
       sysdate);
  end if;
  --客户级别
  if :old.CUSTOMER_LEVEL <> :new.CUSTOMER_LEVEL then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       '客户所属级别',
       'CUSTOMER_LEVEL',
       :old.CUSTOMER_LEVEL,
       :new.CUSTOMER_LEVEL,
       :new.UPDATE_BY,
       sysdate);
  end if;
  --生日
  if :old.BIRTHDAY <> :new.BIRTHDAY then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       '生日',
       'BIRTHDAY',
       :old.BIRTHDAY,
       :new.BIRTHDAY,
       :new.UPDATE_BY,
       sysdate);
  end if;
end;

猜你喜欢

转载自blog.csdn.net/my_name_nb/article/details/79769099