Actualizar una vista materializada de PostgreSQL automáticamente sin usar disparadores

11

Creé una vista materializada nombrada view_table_Aen una tabla de contenedor de datos ajenos table_A. Lo que quiero es que la vista se actualice automáticamente después de cada nueva inserción table_A. Intenté hacer esto con disparadores pero no funcionó.

¿Es posible actualizar una vista materializada automáticamente sin usar disparadores?

James
fuente

Respuestas:

11

Como a_horse_with_no_name dijo en un comentario:

No, eso no es posible. Necesita algún tipo de planificador que ejecute una vista materializada de actualización, por ejemplo, pg_cron o algo en el nivel del sistema operativo: a_horse_with_no_name

Alternativamente, si necesita una MATERIALIZED VIEWactualización que se ejecute SELECT, simplemente elimine MATERIALIZEDy use una regular VIEW. La materialización solo agrega un caché periódico. Solo es necesario cuando la consulta en sí es prohibitivamente lenta o caliente.

Evan Carroll
fuente