我有一个要求,我每天从视图到表格加载。在初始加载之后,可能存在从视图的源表中删除原始记录的情况。还有一些情况会更新这些记录。
运行存储过程时,加载的表应该拾取增量记录。这意味着只有新的插入物。此外,它应将删除的行标记为D.除此之外,源数据中的任何更新也必须在此表中更新并标记为U. 请参阅附图中的情况,如图1所示,2插入初始加载,然后更新,然后删除。 左侧表示视图,右侧表示我尝试加载的表。 谢谢!
希亚姆
答案 0 :(得分:0)
如果您更喜欢在HANA数据库表上使用触发器,则可以在列表上使用以下示例,如果您正在使用行表,则可以选择基于语句的方法
create trigger Salary_A_DEL after DELETE on Salary
REFERENCING OLD ROW myoldrow
FOR EACH ROW
begin
INSERT INTO SalaryLog (
Employee,
Salary,
Operation,
DateTime
) VALUES (
:myoldrow.Employee,
:myoldrow.Salary,
'D',
CURRENT_DATE
);
end;
create trigger Salary_A_UPD after UPDATE on Salary
REFERENCING NEW ROW mynewrow, OLD ROW myoldrow
FOR EACH ROW
begin
INSERT INTO SalaryLog (
Employee,
Salary,
Operation,
DateTime
) VALUES (
:mynewrow.Employee,
:mynewrow.Salary,
'U',
CURRENT_DATE
);
end;
create trigger Salary_A_INS after INSERT on Salary
REFERENCING NEW ROW mynewrow
FOR EACH ROW
begin
INSERT INTO SalaryLog (
Employee,
Salary,
Operation,
DateTime
) VALUES (
:mynewrow.Employee,
:mynewrow.Salary,
'I',
CURRENT_DATE
);
end;