У меня есть система, в которой я не могу управлять дизайном некоторых таблиц (реплицируется через Slony-I), и поэтому у меня есть ряд того, что мы называем «теневыми таблицами», где я извлекаю некоторую информацию из реплицируемых таблиц и сохраните его в обработанной форме, в которой я нуждаюсь, при этом удаляя записи, которые я хочу игнорировать.
Прямо сейчас, после настройки новой реплики, я запускаю обновление и возвращаю себе значение (например, UPDATE tablename SET field=field
), чтобы принудительно запустить триггер, но некоторые таблицы содержат миллионы записей и растут, и это может занять 30 минут. , (и еще есть вакуум).
Есть ли какой-нибудь лучший способ вызвать его или какой-нибудь способ написать функцию, которая будет работать либо с входными данными, переданными внутрь, либо в NEW
зависимости от контекста вызова? Я неохотно держу две разные функции рядом, так как я видел слишком много раз, когда одна обновляется, а другая нет.
Ответы:
Это можно сделать, используя следующий шаблон:
источник