PostgreSQL 触发器
触发器在 INSERT/UPDATE/DELETE 前后自动执行函数:先建函数(RETURNS TRIGGER)再 CREATE TRIGGER 绑定。
Key PointsPostgreSQL,触发器,TRIGGER,审计日志
讲解
触发器在 INSERT/UPDATE/DELETE 前后自动执行函数:先建函数(RETURNS TRIGGER)再 CREATE TRIGGER 绑定。
示例
SQL
CREATE OR REPLACE FUNCTION audit_log() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO audit(table_name, op, at) VALUES ('company', TG_OP, now());
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trg_audit
AFTER INSERT ON company
FOR EACH ROW EXECUTE FUNCTION audit_log();Output
CREATE FUNCTION
CREATE TRIGGER
-- 每次 INSERT company 后 audit 表自动多一行讲解
触发器在 INSERT/UPDATE/DELETE 前后自动执行函数:先建函数(RETURNS TRIGGER)再 CREATE TRIGGER 绑定。
示例
SQL
CREATE OR REPLACE FUNCTION audit_log() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO audit(table_name, op, at) VALUES ('company', TG_OP, now());
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trg_audit
AFTER INSERT ON company
FOR EACH ROW EXECUTE FUNCTION audit_log();Output
CREATE FUNCTION
CREATE TRIGGER
-- 每次 INSERT company 后 audit 表自动多一行