Olá boa tarde, Muito obrigado pelas dicas! Consegui avançar, mas há qualquer coisa que ainda falta.
Com esta função consigo chegar ao objectivo UPDATE plantas_emitidas SET dicofre_plantas = (SELECT dicofre FROM caop_2010 WHERE st_contains(caop_2010.the_geom, plantas_emitidas.the_geom)); Aqui fiquei com uma dúvida, se for para actualizar duas colunas de uma tabela, com duas da outra (em vez de uma), como ficaria? Fiz várias tentativas, mas todas elas deram erro... Depois criei a função trigger CREATE OR REPLACE FUNCTION preenche_dicofre_plantas() RETURNS TRIGGER AS $BODY$ BEGIN SELECT dicofre INTO NEW.dicofre_plantas FROM caop_2011 WHERE st_contains(caop_2010.the_geom, plantas_emitidas.the_geom); RETURN NEW; END; $BODY$ LANGUAGE plpgsql VOLATILE E defini a trigger na tabela plantas_emitidas, com o pgAdmin. No QGIS acrescento novos pontos, mas quando vou guardar aparece-me este erro ERROR: relation "caop_2011" does not exist LINE 1: SELECT dicofre FROM caop_2011 WHERE st_contains(caop_2010.th... ^ QUERY: SELECT dicofre FROM caop_2011 WHERE st_contains(caop_2010.the_geom, plantas_emitidas.the_geom) CONTEXT: PL/pgSQL function "preenche_dicofre_plantas" line 2 at SQL statement Que relação é necessário estabelecer? Obrigado pelo apoio! Pedro ----- Original Message ----- From: Jorge Gustavo Rocha Olá, Se tens uma tabela caop e uma tabela de pontos, para preencheres o concelho e freguesia, ou preencheres o DICOFRE, basta algo do género: update pontos set dcf = (select dicofre from caop where st_contains(wkb_geometry, pontos.wkb_geometry)); Para não teres que fazer isso sempre que alteras a tabela pontos, cria um trigger que faça essa actualização automaticamente. Primeiro crias a "função de trigger" e depois associas essa função aos eventos insert e update. Vê se te safas com a explicação em http://geobox.geospot.pt/pt/index.php/Cria%C3%A7%C3%A3o_de_triggers Bom trabalho, Jorge Qui, 2011-07-14 às 04:53 -0700, Pedro Venâncio escreveu: > Olá boa tarde, > > Tenho 2 layers Postgis, uma de pontos e outra de polígonos (CAOP2010). O que > eu gostava de fazer era "preencher" automaticamente 2 campos (concelho e > freguesia) na tabela de pontos, sempre que crio um novo ponto, com base na > intersecção com a CAOP. > > > Não sei se este procedimento é muito complexo ou não, se alguém me conseguir > dar umas dicas, agradeço! > > Cumprimentos, > Pedro Venâncio > > _______________________________________________ > Portugal mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/portugal -- Jorge Gustavo Rocha Departamento de Informática Universidade do Minho 4710-057 Braga Tel: 253604430 (Geral), 253604479 (Gabinete) Fax: 253604471 Móvel: 910333888 _______________________________________________ Portugal mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/portugal _______________________________________________ Portugal mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/portugal
