-- dbix_migration_delimiter:/ bar
CREATE TABLE product_price_changes (
id SERIAL,
product_id INT NOT NULL,
old_price NUMERIC(10,2) NOT NULL,
new_price NUMERIC(10,2) NOT NULL,
changed_on TIMESTAMP(6) NOT NULL
);
/
-- some usual comment
CREATE OR REPLACE FUNCTION log_price_changes()
RETURNS TRIGGER
LANGUAGE PLPGSQL
AS $$
BEGIN
IF NEW.price <> OLD.price THEN
INSERT INTO product_price_changes(product_id,old_price,new_price,changed_on)
VALUES(OLD.id,OLD.price,NEW.price,now());
END IF;
RETURN NEW;
END;
$$
/
CREATE TRIGGER price_changes
BEFORE UPDATE
ON products
FOR EACH ROW
EXECUTE PROCEDURE log_price_changes();