Tengo un sistema en el que no puedo controlar el diseño de algunas tablas (replicado a través de Slony-I), por lo que tengo una serie de lo que llamamos 'tablas de sombra', donde extraigo información de las tablas replicadas , y guárdelo en la forma procesada que necesito, mientras elimino los registros que quiero ignorar.
En este momento, después de configurar una nueva réplica, ejecuto una actualización y vuelvo a establecer un valor en sí mismo (p. Ej. UPDATE tablename SET field=field
) Para forzar la ejecución del disparador, pero algunas de las tablas son millones de registros y crecen, y puede tomar 30 minutos . (Y luego está el vacío, también).
¿Hay alguna forma mejor de activarlo, o alguna forma de escribir una función de manera que funcione con la entrada pasada o NEW
dependiendo del contexto de llamada? Soy reacio a mantener dos funciones diferentes, como he visto muchas veces donde una se actualiza y no la otra.
Respuestas:
Se puede hacer usando la siguiente plantilla:
fuente