postgresql 的触发器

今天编写了一个触发器

功能:

有两个表,当一个表的字段有所改动的时候,另一个表跟着改动

CREATE OR REPLACE FUNCTION process_emp_audit() RETURNS TRIGGER AS $emp_audit$

BEGIN

IF (TG_OP = 'DELETE') THEN

INSERT INTO emp_audit SELECT 'D', now(), user, OLD.*;

RETURN OLD;

ELSIF (TG_OP = 'UPDATE') THEN

INSERT INTO emp_audit SELECT 'U', now(), user, NEW.*;

RETURN NEW;

ELSIF (TG_OP = 'INSERT') THEN

INSERT INTO emp_audit(empname,salary) SELECT NEW.*;

RETURN NEW;

END IF;

RETURN NULL; -- result is ignored since this is an AFTER trigger

END;

$emp_audit$ LANGUAGE plpgsql;
DROP TRIGGER if EXISTS emp_audit ON emp;
CREATE TRIGGER emp_audit

AFTER INSERT OR UPDATE OR DELETE ON emp

FOR EACH ROW EXECUTE PROCEDURE process_emp_audit();

上一篇:[LeetCode] Minimum Depth of Binary Tree 二叉树的最小深度


下一篇:Web后端 JAVA学习之路