Vous n'êtes pas identifié(e).

#1 Re : Site PostgreSQL.fr » mise à jour champ automatique » 23/08/2017 09:02:39

Merci pour votre réponse.

Il n'y aura pas d'exécution concurrente étant donné qu'une seule personne intervient sur cette base.
J'ai besoin d'afficher en temps réel le nombre d'interventions sur ouvrage pour des consultations de personnes tierces. C'est pourquoi le calcul au besoin n'est pas envisageable ce qui j'en conviens aurait été beaucoup plus simple pour moi étant novice dans les requêtes SQL.

Cependant, je n'utilise peut-être pas la bonne méthode pour arriver à mes fins.

#2 Site PostgreSQL.fr » mise à jour champ automatique » 22/08/2017 15:09:30

dalivna
Réponses : 2

Bonjour,

je me permets de vous solliciter après plusieurs tentatives,
Pour vous expliquer:
J'ai deux tables une intervention et l'autre ouvrage
Un champ id_ouvrage présent dans ma table intervention est renseigné automatiquement via une fonction trigger et un trigger lorsqu'une intervention est saisie sur cet ouvrage.


CREATE OR REPLACE FUNCTION public.id_equipt()
  RETURNS trigger AS
$BODY$DECLARE
BEGIN
IF TG_OP = 'INSERT' or TG_OP = 'UPDATE' THEN
  update public.intervention set id_ouvrage = public.ouvrage.id_ouvrage FROM public.ouvrage where st_intersects(intervention.geom, ouvrage.geom);
END IF;
return     NEW;
END$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.id_equipt()
  OWNER TO postgres;


CREATE TRIGGER id_equipt
  AFTER INSERT OR UPDATE OF geom
  ON public.intervention
  FOR EACH ROW
  EXECUTE PROCEDURE public.id_equipt();


Jusque là tout fonctionne.

Je souhaite maintenant dans un champ nb_intervention contenu dans ma table ouvrage renseigner le nombre d'intervention effectué sur chacun des ouvrages.
Pour cela j'ai effectué une requête SQL simple


UPDATE ouvrage set nb_intervention = (select count(intervention.id_ouvrage) from intervention where st_intersects (ouvrage.geom, intervention.geom));


Cette requête fonctionne lorsque je l'exécute mais je souhaiterai l'automatiser.

Dès qu'une intervention est créé sur un ouvrage le nombre d'intervention augmente automatiquement.

Et là je sèche!

Si l'un d'entre vous peut m'apporter son aide...

Merci d'avance

Pied de page des forums

Propulsé par FluxBB