Actualisez automatiquement une vue matérialisée PostgreSQL sans utiliser de déclencheurs

11

J'ai créé une vue matérialisée nommée view_table_Asur une table de wrapper de données étrangère table_A. Ce que je veux, c'est que la vue soit automatiquement mise à jour après chaque nouvelle insertion table_A. J'ai essayé de le faire avec des déclencheurs mais cela n'a pas fonctionné.

Est-il possible d'actualiser automatiquement une vue matérialisée sans utiliser de déclencheurs?

James
la source

Réponses:

11

Comme l'a dit a_horse_with_no_name dans un commentaire:

Non, ce n'est pas possible. Vous avez besoin d'une sorte de planificateur qui exécute une actualisation de la vue matérialisée, par exemple pg_cron ou quelque chose au niveau du système d'exploitation - a_horse_with_no_name

Alternativement, si vous avez besoin d'un MATERIALIZED VIEWqui se rafraîchit lorsque vous exécutez SELECT, supprimez MATERIALIZEDet utilisez simplement un fichier régulier VIEW. La matérialisation ajoute uniquement un cache périodique. Il n'est nécessaire que lorsque la requête elle-même est trop lente ou chaude.

Evan Carroll
la source