Escrever triggers
De Dados Abertos
Criar uma nova tabela:
CREATE TABLE edificio AS SELECT name, building, osm_user, way FROM planet_osm_polygon WHERE building IS NOT NULL
ALTER TABLE edificio ADD gid serial PRIMARY KEY; ALTER TABLE edificio ADD valor DOUBLE PRECISION;
CREATE OR REPLACE FUNCTION computes_valor() RETURNS TRIGGER AS $BODY$ BEGIN NEW.valor := st_area(NEW.way) * 15; RETURN NEW; END; $BODY$ LANGUAGE 'plpgsql' CREATE TRIGGER update_valor BEFORE INSERT OR UPDATE ON edificio FOR EACH ROW EXECUTE PROCEDURE computes_valor()
Acionar o trigger para todas as linhas: vai calcular o valor para todas as linhas.
UPDATE edificio SET name = name