create table t_real_record_mid1
(
equipment_no varchar2(200 char),
num_info float ,
record_date date ,
record_no varchar2(200 char),
record_type_no varchar2(200 char)
)
此表中数据为实时插入,数据量不断的增长中数据插入时间为秒(record_date为数据的采集时间点)
create table t_real_record_mid2
(
equipment_no varchar2(200 char),
num_info float ,
record_date date ,
record_no varchar2(200 char),
record_type_no varchar2(200 char)
)
本张表字段和上表字段一样,但只有最大时间点的数据(根据record_date区分)-------------------------
想做个触发器,当1表中有新数据插入的时候,就出发这个触发器,把1表中最大时间点的数据插入的2表中替换掉2表中原有数据,请问是否有可行的办法 ,来写一个触发器完成此项工作
(
equipment_no varchar2(200 char),
num_info float ,
record_date date ,
record_no varchar2(200 char),
record_type_no varchar2(200 char)
)
此表中数据为实时插入,数据量不断的增长中数据插入时间为秒(record_date为数据的采集时间点)
create table t_real_record_mid2
(
equipment_no varchar2(200 char),
num_info float ,
record_date date ,
record_no varchar2(200 char),
record_type_no varchar2(200 char)
)
本张表字段和上表字段一样,但只有最大时间点的数据(根据record_date区分)-------------------------
想做个触发器,当1表中有新数据插入的时候,就出发这个触发器,把1表中最大时间点的数据插入的2表中替换掉2表中原有数据,请问是否有可行的办法 ,来写一个触发器完成此项工作
after insert on t_real_record_mid1
for each row
declare
begin
delete from t_real_record_mid2;
insert into t_real_record_mid2 values(:new.equipment_no,:new.num_info,:new.record_date,:new.record_no,:new.record_type_no);
end t_mid1_tri;
create or replace trigger t_mid1_tri
before insert on t_real_record_mid1
for each row
declare
txdat date;
begin
select max(record_date) into txdat from t_real_record_mid1;
if txdat < :new.record_date then
delete from t_real_record_mid2;
insert into t_real_record_mid2 values(:new.equipment_no,:new.num_info,:new.record_date,:new.record_no,:new.record_type_no);
end if;
exception when no_data_found then
insert into t_real_record_mid2 values(:new.equipment_no,:new.num_info,:new.record_date,:new.record_no,:new.record_type_no);
end t_mid1_tri;
create or replace trigger tri_upt_real_record_mid2 before
insert on t_real_record_mid1 for each row
begin
delete from t_real_record_mid2 where equipment_no=:new.equipment_no;
insert into t_real_record_mid2
value(:new.equipment_no,:new.num_info,:new.record_date,:new.record_no,:new.record_type_no);
end;
insert on t_real_record_mid1 for each row
begin
delete from t_real_record_mid2 where equipment_no=:new.equipment_no;
insert into t_real_record_mid2
value(:new.equipment_no,:new.num_info,:new.record_date,:new.record_no,:new.record_type_no);
end;