trigger de auditoria

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

Responses

Browse pgsql-es-ayuda by date

  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