Eu tenho um sistema em que não posso controlar o design de algumas tabelas (replicadas via Slony-I) e, portanto, tenho uma série do que chamamos de 'tabelas de sombra', onde extraio algumas informações das tabelas replicadas e armazene-o no formulário processado de que preciso, enquanto retira os registros que quero ignorar.
No momento, depois de configurar uma nova réplica, eu executo uma atualização e defino um valor novamente (por exemplo, UPDATE tablename SET field=field
) para forçar a execução do gatilho, mas algumas das tabelas têm milhões de registros e estão crescendo, e isso pode levar 30 minutos . (e depois há o vácuo também).
Existe alguma maneira melhor de acioná-lo ou de escrever uma função que funcione com a entrada passada ou NEW
dependendo do contexto de chamada? Estou relutante em manter duas funções diferentes por aí, como já vi muitas vezes em que uma é atualizada, e não a outra.
Respostas:
Isso pode ser feito usando o seguinte modelo:
fonte