PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 16/09/2011 15:35:55

Pascal24
Membre

Remplir un champ par jointure spatiale

Bonjour,
Je souhaite faire une jointure spatiale (PostgrSQL/PostGis) entre une table de point (nomtablepct) et une de polygone (nomtablesurf) afin de remplir
un champ num de la table nomtablepct avec les données du champ num de la table nomtablesurf.
Je veux que cette jointure s’active via une fonction trigger et qu’à chaque création ou mise à jour de données de ma table nomtablepct, que le champ num se remplisse automatiquement avec la valeur du champ num de la table nomtablesurf par jointure spatiale. (Bon là je me suis un peux répété,… )
J’ai fais une fonction et un trigger qui se créent bien sans erreur, mais ça ne me renvoi pas la donnée du champ num et j’ai un message d’erreur sur le terme « geometry ». J’ai probablement fais une erreur dans ma requête ma là je coince.
Merci de votre aide.

CREATE OR REPLACE FUNCTION num_func()
  RETURNS trigger AS
$BODY$
BEGIN
    select into NEW.num num from nomtablesurface where within(NEW.geometry, geometry);
    return NEW ;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION num_func() OWNER TO postgres;

CREATE TRIGGER nomtablepct_num_trig
  BEFORE INSERT OR UPDATE
  ON nomtablepct
  FOR EACH ROW
  EXECUTE PROCEDURE num_func();

Hors ligne

#2 21/09/2011 11:28:16

vincentp
Membre

Re : Remplir un champ par jointure spatiale

Salut,

Pascal24 a écrit :

Bonjour,
J’ai fais une fonction et un trigger qui se créent bien sans erreur, mais ça ne me renvoi pas la donnée du champ num et j’ai un message d’erreur sur le terme « geometry ». J’ai probablement fais une erreur dans ma requête ma là je coince.
Merci de votre aide.

«geometry» est un nom de type. Est ce que votre colonne de type geometry ne s'appelle pas plutôt «the_geom», comme il est coutume de le faire ?

Cdt,
Vincent

Hors ligne

Pied de page des forums