From: | Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com> |
---|---|
To: | Lista postgreslq Postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | trigger de auditoria |
Date: | 2005-09-20 15:26:40 |
Message-ID: | e9b17cde050920082666bc86cb@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola Lista
tengo un trigger que me gatilla la siguiente funcion,
CREATE OR REPLACE FUNCTION auditorias.ausubgrupo () RETURNS TRIGGER
AS '
DECLARE
CONSULTA varchar;
fecha timestamp;
tipo varchar;
cols record;
usuario varchar;
id integer;
pid integer;
columna varchar;
BEGIN
select into fecha current_timestamp(0);
select into usuario inet_client_addr();
select into pid pg_backend_pid();
IF TG_OP = ''INSERT'' THEN
tipo:=''A'';
select into id new.oid;
END IF;
IF TG_OP = ''UPDATE'' THEN
tipo:=''M'';
select into id old.oid;
END IF;
FOR cols IN select attname as nombre, attnum as numero from pg_attribute
where attrelid = TG_RELID
and NOT attisdropped
and attnum > 0
LOOP
IF NEW. || cols.nombre || <> OLD. || cols.nombre || THEN
CONSULTA := ''INSERT INTO auditorias.audit
values (1 ,'' || quote_literal(tipo)
|| '','' || quote_literal(fecha)
|| '','' || quote_literal(usuario)
|| '','' || quote_literal(TG_RELNAME)
|| '','' || id
|| '','' || quote_literal(cols.nombre)
|| '','' || quote_literal(cols.nombre)
|| '','' || quote_literal(cols.nombre)
|| '','' || pid
|| '')'';
EXECUTE CONSULTA;
END IF;
RETURN NEW;
END;
'
LANGUAGE plpgsql;
Esta funcion es una adaptacion de una que santiago c. envio alguna vez
a la lista, pero al ejecutar la sentencia que me gatilla esta, me
arroja un error indicando la linea del ciclo for, pero el for esta
bien.
Lo quie quiero es colocar en un record las columnas de la tabla que
me gatilla el trigguer para que dinamicamente el vea que columna es la
que esta siendo modificada y asi se registre el evento
Saludos
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Soto Cordones - Venezuela | 2005-09-20 15:28:27 | Re: existe conexion pero no veo las db/schemas en el pgadmin |
Previous Message | César Maldonado | 2005-09-20 15:22:00 | UPGRADE DE POSTGRESQL 7.4 a POSTGRES 8.0 EN CENTOS |