我有两个表,一个主表和一个详细表。插入新的主记录后,使用触发器自动创建明细表记录。
但是我需要为主表创建Before Insert or Update
触发器(调用它T1
),以根据主记录中的字段和详细记录中的总和进行一些计算。
我的问题是能够进行计算,T1
我需要先插入详细记录,但当然详细记录对主表 ID 有外键约束,这会阻止此操作,那么您认为实现此任务的最佳方法是什么?
我有两个表,一个主表和一个详细表。插入新的主记录后,使用触发器自动创建明细表记录。
但是我需要为主表创建Before Insert or Update
触发器(调用它T1
),以根据主记录中的字段和详细记录中的总和进行一些计算。
我的问题是能够进行计算,T1
我需要先插入详细记录,但当然详细记录对主表 ID 有外键约束,这会阻止此操作,那么您认为实现此任务的最佳方法是什么?
我认为最好的方法是使用完成所有工作的存储过程......像这样:
create procedure insert_record(id integer, ...);
as
begin
/* this inserts master and through triggers creates detail */
insert into master (id, ... )
values (:id, ...);
/* calculate values */
select sum(...) from detail
where id = :id
into :calculation;
/* usa calculated value to update master table */
update master
set calculated_value = :calculation
here id = :id;
end