pgsql触发器:当一张表进行增删改操作,同时触发另一张表的增删改操作
1:首先定义增删改操作的函数
CREATE OR REPLACE FUNCTION “water(对应数据库的模式)”.“warn_insert(函数名)”()
RETURNS “pg_catalog”.“trigger” AS
B
O
D
Y
BODY
BODY
begin
if NEW.drp > 0 then
–code for Insert
if (TG_OP = ‘INSERT’ ) then
insert into st_warn_r(所触发的表) (’-’,’-’,’-’(对应字段))VALUES (new.’-’,new.’-’,new.’-’);//业务代码
end if;//删除与修改与新增一样
if (TG_OP = ‘UPDATE’ ) then
your code;
end if;
if (TG_OP = ‘DELETE’ ) then
your code;
end if;
end if;
return new;
end;
B
O
D
Y
BODY
BODY
LANGUAGE plpgsql VOLATILE
COST 100
2:当函数建立完成后,需要对进行操作的主表进行触发器的调用
CREATE TRIGGER “insert(触发器的名字)”
BEFORE/AFTER(在前触发或者在后触发) INSERT OR UPDATE OR DELETE
ON Table(触发的表名)
FOR EACH ROW
EXECUTE PROCEDURE water.warn_insert()(上面定义的函数名);