1

我有两个表,一个主表和一个详细表。插入新的主记录后,使用触发器自动创建明细表记录。

但是我需要为主表创建Before Insert or Update触发器(调用它T1),以根据主记录中的字段和详细记录中的总和进行一些计算。

我的问题是能够进行计算,T1我需要先插入详细记录,但当然详细记录对主表 ID 有外键约束,这会阻止此操作,那么您认为实现此任务的最佳方法是什么?

4

1 回答 1

2

我认为最好的方法是使用完成所有工作的存储过程......像这样:

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
于 2013-04-14T07:42:14.323 回答