Message posté par : T. Rossini
----------------------------------------
-----------------
Citation :
Est ce que l'exécution d'un trigger est différent sur une table que sur une vue
pour rafraichir une vue matérialisée?
-----------------
L
Les triggers se déclenchent lors qu'une commande sql est exécutée sur un objet. Donc
votre trigger ne se déclenchera que si quelqui'un ou un programme lance une commande
comme
-----------------
Code :
INSERT INTO v_meteo_data(x,y) VALUES (1,2);
-----------------
Ce que vous avez dit a postgresql de faire, c'est d'executer la procédure
eau.mv_meteo_data_refresh à la place de la commande INSERT.
Les triggers attachées aux vues sont en général utilisés pour créér ce qu'on appelle
des vues editables. Cela permet de mettre à jour les données des tables utilisées par la
définition d'une vue directement depuis la vue plutôt que depuis les tables.
Votre trigger ne se déclenchera donc pas à moins que vous executiez des commandes INSERT
ou UPDATE sur celle-ci. Votre vue v_meteo_data ne s'actualise pas vraiment, mais
ré-execute la requête select que vous avez utilisez comme définition à chaque fois que
celle-ci est consultée.
Pour que votre idée fonctionne, votre trigger doit être défini sur les tables utilisée par
votre vue, là ou les commandes INSERT et UPDATE s'éxecutent.
Comme votre idée est d'avoir des vues à J-12 et J-30, je pense qu'un
rafraichissement journalier des vues via une tâche pg_cron devrait être satisfaisant.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=368653#p368653
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net