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

Responder a