Te paso un ejemplo pero sin pg_agent por si te sirve
En este caso la vista materializada seria inspecciones_maximas y el trigger
que esta debajo mantiene esta tabla con la maxima inspeccion para un
vehiculo. Dicho trigger ejecuta la funcion que esta debajo para tal fin.
Saludos.
create table inspecciones_maximas(
idinspeccion numeric(18) not null,
idvehiculo numeric(18) not null,
CONSTRAINT pk_inspecciones_maximas PRIMARY KEY (idvehiculo)
);
create unique index ix_inspecciones_maximas on
inspecciones_maximas(idinspeccion)
CREATE TRIGGER tr_inspecciones_maximas BEFORE INSERT OR UPDATE OR DELETE
ON inspecciones FOR EACH ROW
EXECUTE PROCEDURE max_inpeccion();
-- manejar la anulacion correctamente.
CREATE OR REPLACE FUNCTION max_inpeccion() RETURNS TRIGGER AS
$tr_inspecciones_maximas$
DECLARE
maxima_inspeccion numeric(18);
BEGIN
-- ESTO VA SIEMPRE
DELETE FROM INSPECCIONES_MAXIMAS where idvehiculo = NEW.idvehiculo;
SELECT MAX(idinspeccion) INTO maxima_inspeccion FROM INSPECCIONES where
idvehiculo = NEW.idvehiculo and anulada is null;
IF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE' ) THEN
IF maxima_inspeccion is not null THEN
INSERT INTO INSPECCIONES_MAXIMAS VALUES (maxima_inspeccion,
NEW.idvehiculo);
END IF;
RETURN NEW;
END IF;
END;
$tr_inspecciones_maximas$ LANGUAGE plpgsql;
-----Mensaje original-----
De: [email protected]
[mailto:[email protected]] En nombre de Ing. Marcos Ortiz
Valmaseda
Enviado el: lunes, 30 de noviembre de 2009 12:50
Para: PostgreSQL
Asunto: [pgsql-es-ayuda] Pg_Agent y las vistas materializadas
Saludos a los listeros.
Estaba revisando en el sitio de pgadmin que habia un modulo que se le podria
incluir en la aplicacion llamado Pg_Agent, con el cual se pueden programar
tareas(una especia de jobs en Oracle).
Mi pregunta va dirigida si alguien ha usado este modulo combinado con las
vistas materializadas, o sea si lo han usado para programar el refresco de
este tipo de vistas. En caso de que lo hayan hecho, con un ejemplo me
bastaria.
Gracias de antemano.
--
TIP 5: ¿Has leído nuestro extenso FAQ?
http://www.postgresql.org/docs/faqs.FAQ.html
--
TIP 1: para suscribirte y desuscribirte, visita
http://archives.postgresql.org/pgsql-es-ayuda