Olá a todos,
Estou numa maquina com Ubuntu Desktop 10.04, PostgreSQL 8.4 e PostGIS 1.5.
e não consigo fazer com que um trigger me funcione.
Vou tentar reproduzir o erro aqui:
CREATE TABLE t_incendio (gid serial PRIMARY KEY, codigo bigint);
SELECT AddGeometrycolumn
('public','t_incendio','geom',23030,'MULTIPOLYGON',2);
CREATE TABLE t_areaprotegida (gid serial PRIMARY KEY, tipo varchar(10),
nome varchar(10));
SELECT AddGeometrycolumn
('public','t_areaprotegida','geom',23030,'MULTIPOLYGON',2);
CREATE TABLE t_relatorio (id serial PRIMARY KEY, codigo bigint, tipo
varchar(10), nome varchar(10));
CREATE OR REPLACE FUNCTION fun_teste()
RETURNS trigger AS
$BODY$
BEGIN
IF (TG_OP = 'INSERT') THEN
INSERT INTO t_relatorio(codigo,tipo,nome)
(SELECT i.codigo, a.tipo, a.nome
FROM t_incendio AS i, t_areaprotegida AS a
WHERE (i.geom && a.geom) AND ST_Intersects(i.geom,a.geom)
GROUP BY i.codigo, a.tipo, a.nome
HAVING i.codigo = NEW.codigo);
ELSIF (TG_OP = 'DELETE') THEN
DELETE FROM t_relatorio
WHERE codigo = OLD.codigo;
END IF;
RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
CREATE TRIGGER trg_t_incendio BEFORE INSERT OR UPDATE ON t_incendio FOR
EACH ROW EXECUTE PROCEDURE fun_teste();
INSERT INTO t_areaprotegida (tipo, nome, geom)
VALUES ('P. Natural', 'Bosque', ST_GeomFromText('MULTIPOLYGON(((670000
4350000,680000 4350000,680000 4340000,670000 4340000,670000
4350000)))',23030));
SELECT * FROM t_areaprotegida;
1;"P. Natural";"Bosque";"0106000020F65900000100000..."
INSERT INTO t_incendio (codigo, geom)
VALUES (999999, ST_GeomFromText('MULTIPOLYGON(((675000 4350000,685000
4350000,685000 4340000,675000 4340000,675000 4350000)))',23030));
SELECT * FROM t_incendio;
1;999999;"0106000020F65900000100000001030000000100000..."
SELECT * FROM t_relatorio;
Nada!
Esta é a consulta que está na funçao fun_teste():
SELECT i.codigo, a.tipo, a.nome
FROM t_incendio AS i, t_areaprotegida AS a
WHERE (i.geom && a.geom) AND ST_Intersects(i.geom,a.geom)
GROUP BY i.codigo, a.tipo, a.nome;
999999;"P. Natural";"Bosque"
O que é que estou a fazer mal?
Obrigado. Cumprimentos,
Eloi Ribeiro
GIS Analyst
39,45º -0,40º
flavors.me/eloiribeiro
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral