oracle触发器 当表修改指定字段时,把那条记录插入到记录修改表中
2018-03-31 14:39
465 查看
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;
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;
相关文章推荐
- MySQL入门--显示指定数据表的字段结构、插入指定字段的值(记录)、查看指定表中指定字段的所有记录
- MySQL入门--显示指定数据表的字段结构、插入指定字段的值(记录)、查看指定表中指定字段的所有记录
- 在mysql中实现字段记录修改时间而不是插入时间
- MongoDb中修改记录的指定字段
- MySQL入门——插入记录时不指定的字段就赋默认值
- delphi mongodb 修改记录指定字段值
- thinkphp 在数据库更新(save)的时候,如果字段没有被修改,会更新失败 和数据的自动验证,插入的时候可以自动验证,但更新的时候就不能验证了
- ASP.NET2.0中插入、删除、查询、修改记录这么多方法,究竟哪种最通用,最常用?
- 插入、删除、更新后返回修改的记录,用output
- MyBatis获取插入记录的自增长字段值
- linqEntity直接修改指定字段,不需查询
- MyBatis获取插入记录的自增长字段值
- oracle查询指定字段 重复记录大于一条的记录,并统计该记录出现的总次数
- MySQL为数据表的指定字段插入数据
- access数据库在没有自增字段情况下选出指定行号的若干行记录
- 设置界面某个字段在工作流的指定节点可修改
- 解决Ext Combobox允许用户插入及修改任意值,不用限制只能新增或修改数据表里即有字段
- timestamp ---自动更新修改时间 与 记录首次插入时间
- 把一个select查询结果插入到一个表(可选指定字段和值实例)
- mysql中如何将查询结果的多个记录中的指定字段放到一个二维数组中,以及在in子句中使用数组