Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TABLE IF NOT EXISTS extend_reporter.last_circ_month (
- id integer NOT NULL PRIMARY KEY, -- No FK intentionally because this isn't all that important to go away if the user does
- circ_month date
- );
- INSERT INTO extend_reporter.last_circ_month(id, circ_month) SELECT usr, max(date_trunc('month', xact_start)) FROM action.circulation GROUP BY usr;
- CREATE OR REPLACE FUNCTION extend_reporter.record_last_circ_month() RETURNS trigger AS $func$
- BEGIN
- UPDATE extend_reporter.last_circ_month SET circ_month = GREATEST(circ_month, date_trunc('month', NEW.xact_start)) WHERE id = NEW.usr;
- IF NOT FOUND THEN
- INSERT INTO extend_reporter.last_circ_month(id, circ_month) VALUES (NEW.usr, date_trunc('month', NEW.xact_start));
- END IF;
- RETURN NEW;
- END;
- $func$
- LANGUAGE plpgsql;
- CREATE TRIGGER action_circulation_last_circ_month_trigger AFTER INSERT ON action.circulation FOR EACH ROW EXECUTE PROCEDURE extend_reporter.record_last_circ_month();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement