Skip to content

Instantly share code, notes, and snippets.

@Tyralion
Created January 23, 2020 06:18
Show Gist options
  • Save Tyralion/1b34bd9f374f41d25407f6123d462a67 to your computer and use it in GitHub Desktop.
Save Tyralion/1b34bd9f374f41d25407f6123d462a67 to your computer and use it in GitHub Desktop.
CREATE OR REPLACE FUNCTION rules_audit() RETURNS TRIGGER
LANGUAGE plpgsql
AS $$
BEGIN
IF (TG_OP = 'DELETE') THEN
DELETE FROM user_rules WHERE rule_id = OLD.id;
DELETE FROM group_rules WHERE rule_id = OLD.id;
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
UPDATE user_rules
SET action = NEW.action,
mark = NEW.mark
WHERE rule_id = NEW.id;
RETURN NEW;
ELSIF (TG_OP = 'INSERT') THEN
RETURN NEW;
END IF;
RAISE NOTICE 'DONE';
RETURN NULL;
END;
$$;
CREATE TRIGGER rules_audit
AFTER INSERT OR UPDATE OR DELETE ON rules
FOR EACH ROW
EXECUTE PROCEDURE rules_audit();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment