更新其他表中的数据时触发更新表

时间:2015-06-17 09:55:28

标签: triggers replication postgresql-9.3

我有一个场景,我的表(Table_A)正在从另一个服务器上的另一个表(Table_B)中复制数据。

我想在表A上编写一个触发器,以便在第三个表(Table_C)中插入一个值/行,该表与Table_A位于同一服务器上。

我尝试了这样的触发器:

功能:

create or replace function drs_function1() returns trigger as $$
begin

if(TG_OP = 'INSERT') then
insert into Table_C values (NEW.loginname,'NEW');
return NEW;
elsif (TG_OP = 'DELETE') then
insert into Table_C values (OLD.loginname,'DELETED');
return OLD;
elsif(TG_OP = 'UPDATE') then
insert into Table_C values (NEW.loginname,'NEW');
return NEW;
end if;
end;
$$ language plpgsql;

触发:

create trigger trigger5 after insert or update or delete on Table_A for each row execute procedure drs_function1();

如果我在Table_A上手动触发插入/更新/删除查询,但是当从Table_B通过复制提供数据时触发器不会触发,则此方法可以正常工作。

系统每隔5分钟将Table_B与Table_A同步。

因此,如果我们更改Table_B中的数据,则同步会将此数据放入Table_A中,触发器应在此时触发以在Table_C中插入数据。

任何帮助都会受到赞赏吗?

感谢。

0 个答案:

没有答案