From: | "\(Syswarp\) Carlos Enrique Perez" <carlos(dot)perez(at)syswarp(dot)com(dot)ar> |
---|---|
To: | "'Ing(dot) Marcos Ortiz Valmaseda'" <mlortiz(at)uci(dot)cu>, "'PostgreSQL'" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Pg_Agent y las vistas materializadas |
Date: | 2009-12-01 13:19:03 |
Message-ID: | 57369F9666C74067B4A3D2D2B8D01B42@COCOT |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] 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
From | Date | Subject | |
---|---|---|---|
Next Message | Ricardo Mendoza | 2009-12-01 14:45:16 | Implementar postgresql en Koha |
Previous Message | José Fermín Francisco Ferreras | 2009-12-01 02:00:12 | RE: seguridad y usuario q hace backup |