Triggers
The Two-Step Creation
-- 1. Create the function
CREATE OR REPLACE FUNCTION log_price_changes()
RETURNS TRIGGER AS $$
BEGIN
IF NEW.price <> OLD.price THEN
INSERT INTO price_history(product_id, old_price, new_price, changed_at)
VALUES (OLD.id, OLD.price, NEW.price, NOW());
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-- 2. Create the trigger
CREATE TRIGGER trg_price_update
AFTER UPDATE ON products
FOR EACH ROW
EXECUTE FUNCTION log_price_changes();Trigger Timing: BEFORE vs. AFTER
Row-Level vs. Statement-Level
Special Variables
Visualizing the Trigger Logic
Pros and Cons for Data Engineers
Summary
Last updated