create or replace trigger item_configuration_std_change2
after insert or update or delete on item_configuration_std
for each row
declare
begin
case
when inserting then
insert into dest_info
values(
:new.ITEM_SUBJECT,
:new.SOURCE_TABLE,
:new.SOURCE_TABLE_COLUMNs,
:new.DESTINATION_TABLE,
:new.DEST_TABLE_COLUMNS,
:new.ITEM_CODE,
:new.ITEM_CH_NAME,
SYS_CONTEXT('USERENV', 'HOST'),
SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
sysdate,
'执行了插入操作',
:new.ITEM_RULE,
(select distinct std.item_ch_name from item_configuration_std std where std.item_code = :new.MEASURING_UNIT and rownum <=1)
);
when updating then
insert into dest_info
values(
:new.ITEM_SUBJECT,
:new.SOURCE_TABLE,
:new.SOURCE_TABLE_COLUMNs,
:new.DESTINATION_TABLE,
:new.DEST_TABLE_COLUMNS,
:new.ITEM_CODE,
:new.ITEM_CH_NAME,
SYS_CONTEXT('USERENV', 'HOST'),
SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
sysdate,
'执行了修改操作',
:new.ITEM_RULE,
(select distinct std.item_ch_name from item_configuration_std std where std.item_code = :new.MEASURING_UNIT and rownum <=1)
);
when deleting then
insert into dest_info
values(
:old.ITEM_SUBJECT,
:old.SOURCE_TABLE,
:old.SOURCE_TABLE_COLUMNs,
:old.DESTINATION_TABLE,
:old.DEST_TABLE_COLUMNS,
:old.ITEM_CODE,
:old.ITEM_CH_NAME,
SYS_CONTEXT('USERENV', 'HOST'),
SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
sysdate,
'执行了删除操作',
:new.ITEM_RULE,
(select distinct std.item_ch_name from item_configuration_std std where std.item_code = :old.MEASURING_UNIT and rownum <=1)
);
end case;
end;
-------------------------------- 解释---------------------------
create or replace trigger item_configuration_std_change2
after insert or update or delete on item_configuration_std
for each row
创建或代替一个名字叫 item_configuration_std_change2 的触发器 作用是当对表 item_configuration_std 执行插入,修改,删除操作时执行这个触发器
for each row 每行操作
when inserting then 当执行插入操作时进行下面的语句
:new.ITEM_SUBJECT item_configuration_std 表中的ITEM_SUBJECT 字段,将新值插入新表中。
剩下的就不难理解了吧,谢谢大家阅读,本文原创,转载请写明出自 o(∩_∩)o 哈哈 大家好运!
!