#1 Tue 10 August 2021 21:13
- image95
- Participant assidu
- Date d'inscription: 6 Sep 2014
- Messages: 267
postgis trigger : table et vue matérialisée
Bonjour,
J'ai une table postgis polygones pour mes "communes".
J'ai une table ponctuelle pour mes "forages".
J'ai créé une vue matérialisée "vm" définit par une jointure spatiale comme suit :
Code:
SELECT forages.*, commune.gid, commune.insee_com, commune.nom FROM forages, commune WHERE st_intersects(pylone.geom, commune.geom);
Maintenant je souhaite que dès qu'une modification a lieu pour le champ "nom" de ma table de polygones "communes",
cette modification se produise également dans le champ "nom" de ma vue matérialisée.
Sauf erreur de ma part,
le trigger doit etre définit sur la table "communes" comme suit
Code:
CREATE TRIGGER communes_trigger after update on commune FOR EACH STATEMENT. execute procedure trigger_fonction
Il me faut maintenant définir la fonction. C'est pour cette étape que j'ai besoin de vous, si vous le voulez bien.
Ci dessous, une proposition de structure. Mais il manque beaucoup de choses.
Code:
CREATE or replace FUNCTION trigger_fonction returns trigger langage sql AS $$ BEGIN if then update end if ; return new refresh materialized view END; $$
Merci beaucoup.
Dernière modification par image95 (Tue 10 August 2021 21:51)
Hors ligne
#2 Wed 11 August 2021 11:20
- Ben22
- Participant actif
- Lieu: 33
- Date d'inscription: 11 May 2016
- Messages: 97
Re: postgis trigger : table et vue matérialisée
Bonjour,
Si votre fonction est juste destinée à rafraichir les données de la vue matérialisée, vous n'étiez pas loin :
Code:
CREATE FUNCTION trigger_fonction() RETURNS trigger AS BEGIN REFRESH MATERIALIZED VIEW vm; RETURN NEW; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;
Dernière modification par Ben22 (Wed 11 August 2021 11:27)
Hors ligne