Учитывая версию postgres, которую вы используете, и, следовательно, помните, что вы не можете использовать триггер, определенный FOR EACH STATEMENT
, для своей цели, единственная альтернатива, которую я вижу, это
- , использующая триггер после вставки для сбора некоторой информации об изменениях в служебной таблице
- с использованием unix cron, который выполняет pl / sql, который выполняет работу с набором данных
Например:
Ваша служебная таблица
CREATE TABLE utility (
actionid integer,
createtime timestamp
);
Вы можете определить триггер FOR EACH ROW
с телом, которое делает что-то подобное
INSERT INTO utilty values(NEW.actionid, curent_timestamp);
И, наконец, есть crontab UNIX, который выполняет файл или процедуру, например, такую:
SELECT a.* FROM utility u JOIN yourtable a ON a.actionid = u.actionid WHERE u.createtime < current_timestamp;
// do something here with records selected above
TRUNCATE table utility;
Если бы у вас было postgres 9.5, вы могли бы использовать pg_cron вместо unix cron ...